#[non_exhaustive]pub struct ContextComposite {
pub policies: Vec<ContextPolicy>,
}Expand description
A chain of context policies applied in combination (C::a() + C::b()).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.policies: Vec<ContextPolicy>The ordered list of policies in this chain.
Implementations§
Source§impl ContextComposite
impl ContextComposite
Sourcepub fn apply(&self, history: &[Content]) -> Vec<Content>
pub fn apply(&self, history: &[Content]) -> Vec<Content>
Apply all policies in sequence, piping each policy’s output into the
next. For C::window(10) + C::user_only() this means “take the last 10
turns, then keep only the user turns” — the additive + composes the
transforms rather than unioning their independent results.
Sourcepub fn into_middleware(self) -> Arc<dyn Middleware>
pub fn into_middleware(self) -> Arc<dyn Middleware>
Adapt this policy chain into a transform_request middleware layer that
rewrites the request’s conversation history before it reaches the model.
Trait Implementations§
Source§impl Add<ContextPolicy> for ContextComposite
impl Add<ContextPolicy> for ContextComposite
Source§type Output = ContextComposite
type Output = ContextComposite
The resulting type after applying the
+ operator.Source§impl Clone for ContextComposite
impl Clone for ContextComposite
Source§fn clone(&self) -> ContextComposite
fn clone(&self) -> ContextComposite
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl From<ContextPolicy> for ContextComposite
A single policy is a one-element chain, so .context(C::window(10)) works
without an explicit +.
impl From<ContextPolicy> for ContextComposite
A single policy is a one-element chain, so .context(C::window(10)) works
without an explicit +.
Source§fn from(policy: ContextPolicy) -> Self
fn from(policy: ContextPolicy) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for ContextComposite
impl !RefUnwindSafe for ContextComposite
impl Send for ContextComposite
impl Sync for ContextComposite
impl Unpin for ContextComposite
impl !UnwindSafe for ContextComposite
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].