From 5a54170510e56269286d5546fad40dc6f5bedd86 Mon Sep 17 00:00:00 2001 From: Kayh Date: Wed, 2 Oct 2024 15:23:48 -0400 Subject: [PATCH] init wired-dwn --- spatial/wit/wired-dwn/records.wit | 53 +++++++++++++++++++++++++++++++ spatial/wit/wired-dwn/world.wit | 40 ++++++----------------- 2 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 spatial/wit/wired-dwn/records.wit diff --git a/spatial/wit/wired-dwn/records.wit b/spatial/wit/wired-dwn/records.wit new file mode 100644 index 0000000..387e1db --- /dev/null +++ b/spatial/wit/wired-dwn/records.wit @@ -0,0 +1,53 @@ +interface records-query { + use types.{message, status}; + + record records-query-reply { + entries: list, + status: status, + } + + resource records-query { + poll: func() -> option; + finished: func() -> bool; + } + + resource records-query-builder { + protocol: func() -> option; + set-protocol: func(value: option); + + record-id: func() -> option; + set-record-id: func(value: option); + + schema: func() -> option; + set-schema: func(value: option); + + run: func() -> records-query; + } +} + +interface records-write { + use types.{message, status}; + + record records-write-reply { + record-id: string, + status: status, + } + + resource records-write { + poll: func() -> option; + finished: func() -> bool; + } + + resource records-write-builder { + protocol: func() -> option; + set-protocol: func(value: option); + + record-id: func() -> option; + set-record-id: func(value: option); + + schema: func() -> option; + set-schema: func(value: option); + + run: func() -> records-write; + } +} diff --git a/spatial/wit/wired-dwn/world.wit b/spatial/wit/wired-dwn/world.wit index aedd449..43aa68d 100644 --- a/spatial/wit/wired-dwn/world.wit +++ b/spatial/wit/wired-dwn/world.wit @@ -1,12 +1,17 @@ package wired:dwn; world host { - import api; import dwn; } -interface api { - use dwn.{dwn}; +interface dwn { + use records-query.{records-query-builder}; + use records-write.{records-write-builder}; + + resource dwn { + records-query: func() -> records-query-builder; + records-write: func() -> records-write-builder; + } /// Get the local user's DWN. local-dwn: func() -> dwn; @@ -15,7 +20,7 @@ interface api { world-host-dwn: func() -> dwn; } -interface dwn { +interface types { record encrypted-data { alg: string, ciphertext: string, @@ -38,31 +43,4 @@ interface dwn { code: u16, detail: option, } - - record query-reply { - entries: list, - status: status, - } - - resource query { - poll: func() -> option; - finished: func() -> bool; - } - - resource query-builder { - protocol: func() -> option; - set-protocol: func(value: option); - - record-id: func() -> option; - set-record-id: func(value: option); - - schema: func() -> option; - set-schema: func(value: option); - - run: func() -> query; - } - - resource dwn { - query: func() -> query-builder; - } }