Skip to main content

DeferredNodeConfig

Struct DeferredNodeConfig 

Source
pub struct DeferredNodeConfig {
    pub merge_strategy: MergeStrategy,
    pub fan_in_timeout: Option<Duration>,
    pub min_predecessors: Option<usize>,
}
Expand description

Configuration for a deferred (fan-in) node.

A deferred node waits for all upstream parallel paths to complete before executing. The configuration controls how outputs are merged and how long the node waits.

§Example

use std::time::Duration;
use adk_graph::deferred::{DeferredNodeConfig, MergeStrategy};

let config = DeferredNodeConfig {
    merge_strategy: MergeStrategy::MergeMap,
    fan_in_timeout: Some(Duration::from_secs(60)),
    ..Default::default()
};

Fields§

§merge_strategy: MergeStrategy

Strategy for combining upstream outputs.

§fan_in_timeout: Option<Duration>

Maximum time to wait for all upstream paths to complete.

  • None: Wait indefinitely for all upstream paths.
  • Some(duration): If the timeout expires and some paths have completed, proceed with partial results. If zero paths have completed, return GraphError::FanInTimedOut.
§min_predecessors: Option<usize>

How many predecessors must have arrived for fan_in_timeout to release the node with partial results.

None means one, which is the behaviour this field replaced. Set it to the full predecessor count to require all of them even after a timeout, or to any value between for an n-of-m join: release once that many branches have answered and abandon the rest.

Trait Implementations§

Source§

impl Clone for DeferredNodeConfig

Source§

fn clone(&self) -> DeferredNodeConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeferredNodeConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeferredNodeConfig

Source§

fn default() -> DeferredNodeConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more