pub struct Loop {
pub body: Box<Composable>,
pub max: u32,
pub until: Option<LoopPredicate>,
pub name: Option<String>,
pub description: Option<String>,
/* private fields */
}Expand description
Loop: repeat an agent or pipeline up to max times, or until a predicate.
Fields§
§body: Box<Composable>The composable to repeat.
max: u32Maximum number of iterations.
until: Option<LoopPredicate>Optional early-exit predicate evaluated after each iteration.
name: Option<String>Name given to the compiled agent (default "loop").
description: Option<String>Human-readable description, shown in Debug output.
Implementations§
Source§impl Loop
impl Loop
Sourcepub fn builder(name: &str) -> Self
pub fn builder(name: &str) -> Self
Create a loop builder with a body agent and default max iterations.
let refine = Loop::builder("refine")
.step(AgentBuilder::new("refine"))
.max_iterations(5);
assert_eq!(refine.max, 5);Sourcepub fn middleware(self, middleware: impl Into<MiddlewareComposite>) -> Self
pub fn middleware(self, middleware: impl Into<MiddlewareComposite>) -> Self
Attach middleware to the loop agent (e.g. M::on_loop(|i| …)), observed
on every iteration.
Sourcepub fn step(self, agent: impl Into<Composable>) -> Self
pub fn step(self, agent: impl Into<Composable>) -> Self
Set the body composable to loop over.
Sourcepub fn max_iterations(self, n: u32) -> Self
pub fn max_iterations(self, n: u32) -> Self
Set a maximum number of iterations.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Loop
impl !RefUnwindSafe for Loop
impl Send for Loop
impl Sync for Loop
impl Unpin for Loop
impl !UnwindSafe for Loop
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].