pub struct FanOut {
pub branches: Vec<Composable>,
pub name: Option<String>,
pub description: Option<String>,
}Expand description
Parallel fan-out: execute branches concurrently, merge results.
Fields§
§branches: Vec<Composable>Branches to execute concurrently.
name: Option<String>Name given to the compiled agent (default "fan_out").
description: Option<String>Human-readable description, shown in Debug output.
Implementations§
Source§impl FanOut
impl FanOut
Sourcepub fn new(branches: Vec<Composable>) -> Self
pub fn new(branches: Vec<Composable>) -> Self
Create a fan-out from the given branches.
Sourcepub fn builder(name: &str) -> Self
pub fn builder(name: &str) -> Self
Create an empty named fan-out (fluent builder entry point).
let research = FanOut::builder("research")
.branch(AgentBuilder::new("web"))
.branch(AgentBuilder::new("db"));
assert_eq!(research.branches.len(), 2);Sourcepub fn branch(self, agent: impl Into<Composable>) -> Self
pub fn branch(self, agent: impl Into<Composable>) -> Self
Add a parallel branch (fluent builder).
Sourcepub fn sub_agent(self, agent: AgentBuilder) -> Self
pub fn sub_agent(self, agent: AgentBuilder) -> Self
Add a sub-agent branch (alias for branch — matches upstream naming).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FanOut
impl !RefUnwindSafe for FanOut
impl Send for FanOut
impl Sync for FanOut
impl Unpin for FanOut
impl !UnwindSafe for FanOut
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].