From 6ec6bbaf413ff9244d6f01ef3443072a781f52e8 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 8 Feb 2023 22:27:41 +0100 Subject: [PATCH] Incorporate Step, Description --- syndicate-server/examples/consumer.rs | 3 +-- syndicate-server/examples/dirty/mod.rs | 5 +++-- syndicate-server/examples/pingpong.rs | 3 +-- syndicate-server/examples/producer.rs | 3 +-- syndicate-server/examples/state-consumer.rs | 3 +-- syndicate-server/examples/state-producer.rs | 3 +-- syndicate-server/src/gatekeeper.rs | 5 +++-- syndicate/src/relay.rs | 9 +++++++-- 8 files changed, 18 insertions(+), 16 deletions(-) diff --git a/syndicate-server/examples/consumer.rs b/syndicate-server/examples/consumer.rs index 51e271c..bc4ad65 100644 --- a/syndicate-server/examples/consumer.rs +++ b/syndicate-server/examples/consumer.rs @@ -49,8 +49,7 @@ async fn main() -> ActorResult { })?; Ok(None) - }); - Ok(()) + }) }).await??; Ok(()) } diff --git a/syndicate-server/examples/dirty/mod.rs b/syndicate-server/examples/dirty/mod.rs index 6162e65..5d2a3b3 100644 --- a/syndicate-server/examples/dirty/mod.rs +++ b/syndicate-server/examples/dirty/mod.rs @@ -16,8 +16,9 @@ pub fn dirty_resolve(stream: &mut TcpStream, dataspace: &str) -> Result<(), Box< let iolang = Language::::default(); let sturdyref = sturdy::SturdyRef::from_hex(dataspace)?; - let sturdyref: IOValue = syndicate::language().unparse(&sturdyref) - .copy_via(&mut |_| Err("no!"))?; + let sturdyref = iolang.parse::>( + &syndicate::language().unparse(&sturdyref) + .copy_via(&mut |_| Err("no!"))?)?; let resolve_turn = P::Turn(vec![ P::TurnEvent { diff --git a/syndicate-server/examples/pingpong.rs b/syndicate-server/examples/pingpong.rs index d671f7a..545abc7 100644 --- a/syndicate-server/examples/pingpong.rs +++ b/syndicate-server/examples/pingpong.rs @@ -199,8 +199,7 @@ async fn main() -> ActorResult { } Ok(None) - }); - Ok(()) + }) }).await??; Ok(()) } diff --git a/syndicate-server/examples/producer.rs b/syndicate-server/examples/producer.rs index b8fb818..af7b1a1 100644 --- a/syndicate-server/examples/producer.rs +++ b/syndicate-server/examples/producer.rs @@ -46,8 +46,7 @@ async fn main() -> ActorResult { } }); Ok(None) - }); - Ok(()) + }) }).await??; Ok(()) } diff --git a/syndicate-server/examples/state-consumer.rs b/syndicate-server/examples/state-consumer.rs index 71f86bf..4168f66 100644 --- a/syndicate-server/examples/state-consumer.rs +++ b/syndicate-server/examples/state-consumer.rs @@ -70,8 +70,7 @@ async fn main() -> ActorResult { })?; Ok(None) - }); - Ok(()) + }) }).await??; Ok(()) } diff --git a/syndicate-server/examples/state-producer.rs b/syndicate-server/examples/state-producer.rs index 461a536..0ad2c64 100644 --- a/syndicate-server/examples/state-producer.rs +++ b/syndicate-server/examples/state-producer.rs @@ -42,8 +42,7 @@ async fn main() -> ActorResult { } }); Ok(None) - }); - Ok(()) + }) }).await??; Ok(()) } diff --git a/syndicate-server/src/gatekeeper.rs b/syndicate-server/src/gatekeeper.rs index 10f0bdc..a3ce185 100644 --- a/syndicate-server/src/gatekeeper.rs +++ b/syndicate-server/src/gatekeeper.rs @@ -114,10 +114,11 @@ pub fn handle_resolves( t: &mut Activation, a: gatekeeper::Resolve, ) -> DuringResult> { - if let Ok(s) = language().parse::(&a.step) { + let step = language().unparse(&a.step); + if let Ok(s) = language().parse::(&step) { return handle_resolve_sturdyref(ds, t, s.0, a.observer); } - if let Ok(s) = language().parse::>(&a.step) { + if let Ok(s) = language().parse::>(&step) { return handle_resolve_noise(ds, t, s.service.0, a.observer); } eventually_retract(ds.assert(t, language(), &gatekeeper::Rejected { diff --git a/syndicate/src/relay.rs b/syndicate/src/relay.rs index 57b409f..e238657 100644 --- a/syndicate/src/relay.rs +++ b/syndicate/src/relay.rs @@ -185,7 +185,7 @@ pub fn connect_stream( step: Step, initial_state: E, mut f: F, -) where +) -> ActorResult where I: 'static + Send + AsyncRead, O: 'static + Send + AsyncWrite, Step: for<'a> Unparse<&'a Language, AnyValue>, @@ -199,10 +199,15 @@ pub fn connect_stream( let denotation = a.value().to_embedded()?; f(state, t, Arc::clone(denotation)) })); + let step = language().unparse(&step); + let step = step.value().to_record(None)?; + let step_type = step.label().value().to_symbol()?.clone(); + let step = gatekeeper::Step { step_type, details: step.fields_vec().clone() }; gatekeeper.assert(t, language(), &gatekeeper::Resolve:: { - step: language().unparse(&step), + step, observer: Cap::new(&main_entity), }); + Ok(()) } impl std::fmt::Debug for Membrane {