Use syndicate-macros crate in syndicate-server

This commit is contained in:
Tony Garnock-Jones 2021-08-12 23:58:58 -04:00
parent 82dd821d35
commit 5bb665ef62
2 changed files with 2 additions and 20 deletions

View File

@ -6,6 +6,7 @@ edition = "2018"
[dependencies] [dependencies]
syndicate = { path = "../syndicate", version = "^0.2.0" } syndicate = { path = "../syndicate", version = "^0.2.0" }
syndicate-macros = { path = "../syndicate-macros", version = "^0.2.0" }
futures = "0.3.5" futures = "0.3.5"

View File

@ -19,9 +19,7 @@ use syndicate::schemas::internal_protocol::_Any;
use syndicate::schemas::gatekeeper; use syndicate::schemas::gatekeeper;
use syndicate::sturdy; use syndicate::sturdy;
use syndicate::value::Map;
use syndicate::value::NestedValue; use syndicate::value::NestedValue;
use syndicate::value::Value;
use tokio::net::TcpListener; use tokio::net::TcpListener;
use tokio::net::TcpStream; use tokio::net::TcpStream;
@ -286,7 +284,6 @@ fn handle_resolve(
a: gatekeeper::Resolve, a: gatekeeper::Resolve,
) -> DuringResult<Arc<Cap>> { ) -> DuringResult<Arc<Cap>> {
use syndicate::schemas::dataspace; use syndicate::schemas::dataspace;
use syndicate::schemas::dataspace_patterns as p;
let gatekeeper::Resolve { sturdyref, observer } = a; let gatekeeper::Resolve { sturdyref, observer } = a;
let queried_oid = sturdyref.oid.clone(); let queried_oid = sturdyref.oid.clone();
@ -316,23 +313,7 @@ fn handle_resolve(
.create_cap(t.state); .create_cap(t.state);
if let Some(oh) = ds.assert(t, &dataspace::Observe { if let Some(oh) = ds.assert(t, &dataspace::Observe {
// TODO: codegen plugin to generate pattern constructors // TODO: codegen plugin to generate pattern constructors
pattern: p::Pattern::DCompound(Box::new(p::DCompound::Rec { pattern: syndicate_macros::pattern!("<bind =queried_oid $ $>"),
ctor: Box::new(p::CRec {
label: Value::symbol("bind").wrap(),
arity: 3.into(),
}),
members: Map::from_iter(vec![
(0.into(), p::Pattern::DLit(Box::new(p::DLit {
value: queried_oid,
}))),
(1.into(), p::Pattern::DBind(Box::new(p::DBind {
pattern: p::Pattern::DDiscard(Box::new(p::DDiscard)),
}))),
(2.into(), p::Pattern::DBind(Box::new(p::DBind {
pattern: p::Pattern::DDiscard(Box::new(p::DDiscard)),
}))),
].into_iter())
})),
observer: handler, observer: handler,
}) { }) {
Ok(Some(Box::new(move |_ds, t| Ok(t.retract(oh))))) Ok(Some(Box::new(move |_ds, t| Ok(t.retract(oh)))))