pub trait SendsFor<Event>: SendEffects { }Expand description
Proof that send effects are lawful for one complete event type.
Ordinary communications are independent of Event. Interpreter requests
that return a local fact are not: their continuation must select an exact
member of Event. Composite products implement this trait structurally,
reindexing only their wrapped behavior effects through an outer event
injection.
An un-reindexed return to the emitter cannot be paired with an added outer event layer:
ⓘ
use behavior::{SendsFor, EventLayer, Here, MailAddr, ReturnsToEmitter,
InterpreterRequest, InterpreterRequests, User};
struct Request;
impl InterpreterRequest for Request {
type ReturnToEmitter = ReturnsToEmitter<u8, Here>;
}
fn lawful<E, F: SendsFor<E>>() {}
type Inner = EventLayer<u8, User<MailAddr, ()>>;
type Outer = EventLayer<(), Inner>;
lawful::<Outer, InterpreterRequests<Request>>();Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".