diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 573e4e1..6c261df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,9 +21,13 @@ jobs: set -x dfx cache install dfx start --background --no-artificial-delay - dfx canister --no-wallet create BigSearch - dfx build BigSearch - dfx deploy --no-wallet BigSearch + dfx canister --no-wallet create Search + dfx build Search + dfx deploy --no-wallet Search + dfx canister --no-wallet create UnitTest + dfx build UnitTest + dfx deploy --no-wallet UnitTest + dfx canister call UnitTest selfTest - name: "docs" run: /home/runner/.cache/dfinity/versions/$DFX_VERSION/mo-doc - name: Upload docs diff --git a/dfx.json b/dfx.json index de041c8..e1ddafc 100644 --- a/dfx.json +++ b/dfx.json @@ -1,15 +1,15 @@ { "canisters": { - "Main": { + "UnitTest": { "main": "test/Main.mo" }, - "BigSearch": { - "main": "service/BigSearch.mo" + "Search": { + "main": "example/SearchService/Service.mo" } }, "defaults": { "build": { - "packtool": "vessel sources", + "packtool": "vessel --package-set example-package-set.dhall sources", "output": "canisters/" }, "start": { diff --git a/example-package-set.dhall b/example-package-set.dhall new file mode 100644 index 0000000..aae2348 --- /dev/null +++ b/example-package-set.dhall @@ -0,0 +1,23 @@ +let upstream = + https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall + sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325 + +let Package = + { name : Text, version : Text, repo : Text, dependencies : List Text } + +let + -- This is where you can add your own packages to the package-set + additions = + [ { name = "base" + , repo = "https://github.com/dfinity/motoko-base" + , version = "dfx-0.7.0-beta.2" + , dependencies = [] : List Text + } + , { name = "crud" + , repo = "https://github.com/matthewhammer/motoko-crud" + , version = "master" + , dependencies = [] : List Text + } + ] + +in upstream # additions diff --git a/example/SearchService/README.md b/example/SearchService/README.md new file mode 100644 index 0000000..e4443a3 --- /dev/null +++ b/example/SearchService/README.md @@ -0,0 +1,5 @@ +# Example: Search Service + +Example service uses `Sequence` and `Text` modules from the main `sequence` package. + +[Deployed here.](https://ic.rocks/principal/d3ip4-saaaa-aaaae-aaa2q-cai) diff --git a/src/Search.mo b/example/SearchService/Search.mo similarity index 97% rename from src/Search.mo rename to example/SearchService/Search.mo index fd6ee5e..3eb5c03 100644 --- a/src/Search.mo +++ b/example/SearchService/Search.mo @@ -1,21 +1,19 @@ +import Buffer "mo:base/Buffer"; +import Char "mo:base/Char"; import Debug "mo:base/Debug"; import Hash "mo:base/Hash"; +import Iter "mo:base/Iter"; import Nat "mo:base/Nat"; -import Char "mo:base/Char"; import Result "mo:base/Result"; import Text "mo:base/Text"; -import Buffer "mo:base/Buffer"; - -import Iter "mo:base/Iter"; -import IterExt "IterExt"; - import Trie "mo:base/Trie"; -import TrieExt "TrieExt"; import Db "mo:crud/Database"; -import Sequence "Sequence"; -import Texts "Text"; +import Sequence "../../src/Sequence"; +import Texts "../../src/Text"; +import TrieExt "../../src/TrieExt"; +import IterExt "../../src/IterExt"; module { @@ -54,7 +52,7 @@ module { public type SearchResults = Sequence.Sequence; // stores a database of text files, with keyword search - public class BigSearch() { + public class Search() { var count = 0; diff --git a/service/BigSearch.mo b/example/SearchService/Service.mo similarity index 74% rename from service/BigSearch.mo rename to example/SearchService/Service.mo index ec41548..433592d 100644 --- a/service/BigSearch.mo +++ b/example/SearchService/Service.mo @@ -1,39 +1,39 @@ -import Search "../src/Search"; +import Search "Search"; import Debug "mo:base/Debug"; import Result "mo:base/Result"; actor { public type FileId = Search.FileId; - flexible var bigSearch = Search.BigSearch(); + flexible var search_ = Search.Search(); // do a keyword search, limited to at most maxResults public query func search(q : ?Text, maxResults : Nat) : async [Search.SearchResult] { - bigSearch.search(q, maxResults) + search_.search(q, maxResults) }; /// create a new text sequence public func create(n : ?Text, m : ?Text, c : Text) : async FileId { - bigSearch.create(n, m, c) + search_.create(n, m, c) }; /// delete a text sequence public func delete(id : FileId) : async Bool { - bigSearch.delete(id) + search_.delete(id) }; /// append to an existing text sequence public func addText(id : FileId, t : Text) : async Bool { - bigSearch.addText(id, t) + search_.addText(id, t) }; /// read a text sequence public func readText(id : FileId) : async ?Text { - bigSearch.readText(id) + search_.readText(id) }; /// read a text sequence slice public func readSlice(id : FileId, pos : Nat, size : Nat) : async ?Text { - bigSearch.readSlice(id, pos, size) + search_.readSlice(id, pos, size) }; } diff --git a/package-set.dhall b/package-set.dhall index 42fe33b..d0612a9 100644 --- a/package-set.dhall +++ b/package-set.dhall @@ -1,35 +1,18 @@ -let upstream = https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325 -let Package = - { name : Text, version : Text, repo : Text, dependencies : List Text } +let upstream = + https://github.com/kritzcreek/vessel-package-set/releases/download/mo-0.5.7-20210211/package-set.dhall + sha256:43565631bf6b43639fcd0cae5cbb6b5d4f9bf5139e66ef600b8f7ded31821325 -let - -- This is where you can add your own packages to the package-set - additions = [ - { name = "base" - , repo = "https://github.com/dfinity/motoko-base" - , version = "dfx-0.7.0-beta.2" - , dependencies = [] : List Text - }, - { name = "crud" - , repo = "https://github.com/matthewhammer/motoko-crud" - , version = "master" - , dependencies = [] : List Text - }, - ] +let Package = + { name : Text, version : Text, repo : Text, dependencies : List Text } let - {- This is where you can override existing packages in the package-set - - For example, if you wanted to use version `v2.0.0` of the foo library: - let overrides = [ - { name = "foo" - , version = "v2.0.0" - , repo = "https://github.com/bar/foo" - , dependencies = [] : List Text - } - ] - -} - overrides = - [] : List Package + -- This is where you can add your own packages to the package-set + additions = + [ { name = "base" + , repo = "https://github.com/dfinity/motoko-base" + , version = "dfx-0.7.2" + , dependencies = [] : List Text + } + ] -in upstream # additions # overrides +in upstream # additions diff --git a/test/Main.mo b/test/Main.mo index 92e2072..a088dbe 100644 --- a/test/Main.mo +++ b/test/Main.mo @@ -5,8 +5,6 @@ import Sort "../src/Sort"; import TextSeq "../src/Text"; -import Search "../src/Search"; - import Buffer "mo:base/Buffer"; import Debug "mo:base/Debug"; import Nat "mo:base/Nat";