Incorporate Step, Description

This commit is contained in:
Tony Garnock-Jones 2023-02-08 22:27:41 +01:00
parent ddc94bfa60
commit 6ec6bbaf41
8 changed files with 18 additions and 16 deletions

View File

@ -49,8 +49,7 @@ async fn main() -> ActorResult {
})?; })?;
Ok(None) Ok(None)
}); })
Ok(())
}).await??; }).await??;
Ok(()) Ok(())
} }

View File

@ -16,8 +16,9 @@ pub fn dirty_resolve(stream: &mut TcpStream, dataspace: &str) -> Result<(), Box<
let iolang = Language::<IOValue>::default(); let iolang = Language::<IOValue>::default();
let sturdyref = sturdy::SturdyRef::from_hex(dataspace)?; let sturdyref = sturdy::SturdyRef::from_hex(dataspace)?;
let sturdyref: IOValue = syndicate::language().unparse(&sturdyref) let sturdyref = iolang.parse::<gatekeeper::Step<IOValue>>(
.copy_via(&mut |_| Err("no!"))?; &syndicate::language().unparse(&sturdyref)
.copy_via(&mut |_| Err("no!"))?)?;
let resolve_turn = P::Turn(vec![ let resolve_turn = P::Turn(vec![
P::TurnEvent { P::TurnEvent {

View File

@ -199,8 +199,7 @@ async fn main() -> ActorResult {
} }
Ok(None) Ok(None)
}); })
Ok(())
}).await??; }).await??;
Ok(()) Ok(())
} }

View File

@ -46,8 +46,7 @@ async fn main() -> ActorResult {
} }
}); });
Ok(None) Ok(None)
}); })
Ok(())
}).await??; }).await??;
Ok(()) Ok(())
} }

View File

@ -70,8 +70,7 @@ async fn main() -> ActorResult {
})?; })?;
Ok(None) Ok(None)
}); })
Ok(())
}).await??; }).await??;
Ok(()) Ok(())
} }

View File

@ -42,8 +42,7 @@ async fn main() -> ActorResult {
} }
}); });
Ok(None) Ok(None)
}); })
Ok(())
}).await??; }).await??;
Ok(()) Ok(())
} }

View File

@ -114,10 +114,11 @@ pub fn handle_resolves(
t: &mut Activation, t: &mut Activation,
a: gatekeeper::Resolve, a: gatekeeper::Resolve,
) -> DuringResult<Arc<Cap>> { ) -> DuringResult<Arc<Cap>> {
if let Ok(s) = language().parse::<sturdy::SturdyStep>(&a.step) { let step = language().unparse(&a.step);
if let Ok(s) = language().parse::<sturdy::SturdyStep>(&step) {
return handle_resolve_sturdyref(ds, t, s.0, a.observer); return handle_resolve_sturdyref(ds, t, s.0, a.observer);
} }
if let Ok(s) = language().parse::<noise::NoiseStep<AnyValue>>(&a.step) { if let Ok(s) = language().parse::<noise::NoiseStep<AnyValue>>(&step) {
return handle_resolve_noise(ds, t, s.service.0, a.observer); return handle_resolve_noise(ds, t, s.service.0, a.observer);
} }
eventually_retract(ds.assert(t, language(), &gatekeeper::Rejected { eventually_retract(ds.assert(t, language(), &gatekeeper::Rejected {

View File

@ -185,7 +185,7 @@ pub fn connect_stream<I, O, Step, E, F>(
step: Step, step: Step,
initial_state: E, initial_state: E,
mut f: F, mut f: F,
) where ) -> ActorResult where
I: 'static + Send + AsyncRead, I: 'static + Send + AsyncRead,
O: 'static + Send + AsyncWrite, O: 'static + Send + AsyncWrite,
Step: for<'a> Unparse<&'a Language<AnyValue>, AnyValue>, Step: for<'a> Unparse<&'a Language<AnyValue>, AnyValue>,
@ -199,10 +199,15 @@ pub fn connect_stream<I, O, Step, E, F>(
let denotation = a.value().to_embedded()?; let denotation = a.value().to_embedded()?;
f(state, t, Arc::clone(denotation)) 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::<AnyValue> { gatekeeper.assert(t, language(), &gatekeeper::Resolve::<AnyValue> {
step: language().unparse(&step), step,
observer: Cap::new(&main_entity), observer: Cap::new(&main_entity),
}); });
Ok(())
} }
impl std::fmt::Debug for Membrane { impl std::fmt::Debug for Membrane {