pub struct GraphFlow<B>where
B: WireFormatBackend,{ /* private fields */ }Expand description
Directed Acyclic Graph (Graph) workflow builder
Implementations§
Source§impl<B> GraphFlow<B>where
B: Backend + WireFormatBackend,
impl<B> GraphFlow<B>where
B: Backend + WireFormatBackend,
Source§impl<B> GraphFlow<B>where
B: Backend + WireFormatBackend,
impl<B> GraphFlow<B>where
B: Backend + WireFormatBackend,
Sourcepub fn add_node<S, Input, CodecError>(
&self,
name: &str,
service: S,
) -> NodeBuilder<'_, Input, S::Response, B>where
S: Service<Task<Input>> + Send + 'static + Sync + Clone,
S::Future: Send + 'static,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + Codec<S::Response, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone + 'static,
CodecError: Into<BoxDynError> + Send + 'static,
S::Error: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
Input: GraphCodec<B, Error = CodecError> + Send + Sync + 'static + DeserializeOwned,
S::Response: Serialize,
pub fn add_node<S, Input, CodecError>(
&self,
name: &str,
service: S,
) -> NodeBuilder<'_, Input, S::Response, B>where
S: Service<Task<Input>> + Send + 'static + Sync + Clone,
S::Future: Send + 'static,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + Codec<S::Response, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone + 'static,
CodecError: Into<BoxDynError> + Send + 'static,
S::Error: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
Input: GraphCodec<B, Error = CodecError> + Send + Sync + 'static + DeserializeOwned,
S::Response: Serialize,
Add a named node to the Graph
Sourcepub fn add_task<F, Input, O, FnArgs, Err, CodecError>(
&self,
task: F,
) -> NodeBuilder<'_, Input, O, B>where
TaskFn<F, Input, FnArgs>: Service<Task<Input>, Response = O, Error = Err> + Clone,
F: Send + 'static + Sync,
Input: Send + 'static + Sync + GraphCodec<B, Error = CodecError> + DeserializeOwned,
FnArgs: Send + 'static + Sync,
<TaskFn<F, Input, FnArgs> as Service<Task<Input>>>::Future: Send + 'static,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + 'static + Codec<O, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone,
CodecError: Into<BoxDynError> + Send + 'static,
Err: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
O: Serialize,
pub fn add_task<F, Input, O, FnArgs, Err, CodecError>(
&self,
task: F,
) -> NodeBuilder<'_, Input, O, B>where
TaskFn<F, Input, FnArgs>: Service<Task<Input>, Response = O, Error = Err> + Clone,
F: Send + 'static + Sync,
Input: Send + 'static + Sync + GraphCodec<B, Error = CodecError> + DeserializeOwned,
FnArgs: Send + 'static + Sync,
<TaskFn<F, Input, FnArgs> as Service<Task<Input>>>::Future: Send + 'static,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + 'static + Codec<O, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone,
CodecError: Into<BoxDynError> + Send + 'static,
Err: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
O: Serialize,
Add a task function node to the Graph
Sourcepub fn route<F, Input, O, FnArgs, Err, CodecError>(
&self,
router: F,
) -> NodeBuilder<'_, Input, O, B>where
TaskFn<F, Input, FnArgs>: Service<Task<Input>, Response = O, Error = Err> + Clone,
F: Send + 'static + Sync,
Input: Send + 'static + Sync + GraphCodec<B, Error = CodecError> + DeserializeOwned,
FnArgs: Send + 'static + Sync,
<TaskFn<F, Input, FnArgs> as Service<Task<Input>>>::Future: Send + 'static,
O: Into<NodeIndex> + Serialize,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + 'static + Codec<O, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone,
CodecError: Into<BoxDynError> + Send + 'static,
Err: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
pub fn route<F, Input, O, FnArgs, Err, CodecError>(
&self,
router: F,
) -> NodeBuilder<'_, Input, O, B>where
TaskFn<F, Input, FnArgs>: Service<Task<Input>, Response = O, Error = Err> + Clone,
F: Send + 'static + Sync,
Input: Send + 'static + Sync + GraphCodec<B, Error = CodecError> + DeserializeOwned,
FnArgs: Send + 'static + Sync,
<TaskFn<F, Input, FnArgs> as Service<Task<Input>>>::Future: Send + 'static,
O: Into<NodeIndex> + Serialize,
B::Codec: Codec<Input, Compact = B::Compact, Error = CodecError> + 'static + Codec<O, Compact = B::Compact, Error = CodecError> + Send + Sync + Clone,
CodecError: Into<BoxDynError> + Send + 'static,
Err: Into<BoxDynError>,
B: BackendConfig + Send + Sync + 'static,
Add a routing node to the Graph
Sourcepub fn validate(&self) -> Result<(), GraphFlowError>
pub fn validate(&self) -> Result<(), GraphFlowError>
Validate the Graph for cycles
Trait Implementations§
Source§impl<B, Compact, Err> IntoWorkerService<B, RootGraphService<B>> for GraphFlow<B>
impl<B, Compact, Err> IntoWorkerService<B, RootGraphService<B>> for GraphFlow<B>
Source§fn into_service(self, b: B) -> WorkerService<B, RootGraphService<B>>
fn into_service(self, b: B) -> WorkerService<B, RootGraphService<B>>
Builds a worker service from the provided backend.
Auto Trait Implementations§
impl<B> !Freeze for GraphFlow<B>
impl<B> RefUnwindSafe for GraphFlow<B>where
Mutex<Graph<BoxCloneSyncService<Task<NodeInput<<B as WireFormatBackend>::Compact>>, (<B as WireFormatBackend>::Compact, Value), Box<dyn Error + Sync + Send>>, ()>>: RefUnwindSafe,
impl<B> Send for GraphFlow<B>
impl<B> Sync for GraphFlow<B>
impl<B> Unpin for GraphFlow<B>
impl<B> UnsafeUnpin for GraphFlow<B>where
Mutex<Graph<BoxCloneSyncService<Task<NodeInput<<B as WireFormatBackend>::Compact>>, (<B as WireFormatBackend>::Compact, Value), Box<dyn Error + Sync + Send>>, ()>>: UnsafeUnpin,
impl<B> UnwindSafe for GraphFlow<B>where
Mutex<Graph<BoxCloneSyncService<Task<NodeInput<<B as WireFormatBackend>::Compact>>, (<B as WireFormatBackend>::Compact, Value), Box<dyn Error + Sync + Send>>, ()>>: UnwindSafe,
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