pub struct Component<G> { /* private fields */ }
Expand description
Storage the component infos:
- Id that indentify a component in a Flow,
- Type of component
- Traits needed to run (ComponentRunnable + Inputs + Outputs)
use rs_flow::prelude::*;
struct G;
#[outputs { out1 }]
#[inputs { in1, in2 }]
struct A;
assert_eq!(A.output("out1"), 0); // first output port
assert_eq!(A.input("in1"), 0); // first input port
assert_eq!(A.input("in2"), 1); // second input port
#[async_trait]
impl ComponentRunnable for A {
type Global = G;
async fn run(&self, ctx: &mut Ctx<Self::Global>) -> Result<Next> {
return Ok(Next::Continue);
}
}
let component1 = Component::new(1, A); // Type::Lazy
let component2 = Component::eager(2, A); // Type::Eeager
assert_eq!(component1.ty(), Type::Lazy);
assert_eq!(component2.ty(), Type::Eager);
let c = Connection::by(component1.from("out1"), component2.to("in1"));
assert_eq!(Connection::new(1, 0, 2, 0), c);
Implementations§
Source§impl<G> Component<G>
impl<G> Component<G>
Auto Trait Implementations§
impl<G> Freeze for Component<G>
impl<G> !RefUnwindSafe for Component<G>
impl<G> Send for Component<G>
impl<G> Sync for Component<G>
impl<G> Unpin for Component<G>
impl<G> !UnwindSafe for Component<G>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more