pub struct CompactionFailure {
pub trace_id: Uuid,
pub fell_back_to: Option<FallbackStrategy>,
pub reason: String,
pub after_tokens: usize,
pub budget: usize,
}Expand description
Emitted when every fallback strategy failed to fit under budget.
At this point the caller must surface an error to the user — sending
the request to the provider would 400. fell_back_to is None
explicitly (rather than omitted) so JSONL consumers can distinguish
“never attempted truncation” from “attempted and it also failed”.
§Examples
use codetether_agent::session::{CompactionFailure, FallbackStrategy};
use uuid::Uuid;
let f = CompactionFailure {
trace_id: Uuid::nil(),
fell_back_to: Some(FallbackStrategy::Truncate),
reason: "truncation below minimum viable request".into(),
after_tokens: 9_200,
budget: 8_000,
};
assert!(f.after_tokens > f.budget);Fields§
§trace_id: UuidCorrelates with the originating CompactionStart.
fell_back_to: Option<FallbackStrategy>Last strategy attempted before giving up, or None if compaction
never managed to run at all.
reason: StringHuman-readable diagnostic.
after_tokens: usizeFinal estimated request tokens after the last attempt.
budget: usizeBudget the request still fails to fit under.
Trait Implementations§
Source§impl Clone for CompactionFailure
impl Clone for CompactionFailure
Source§fn clone(&self) -> CompactionFailure
fn clone(&self) -> CompactionFailure
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 Debug for CompactionFailure
impl Debug for CompactionFailure
Source§impl<'de> Deserialize<'de> for CompactionFailure
impl<'de> Deserialize<'de> for CompactionFailure
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CompactionFailure
impl RefUnwindSafe for CompactionFailure
impl Send for CompactionFailure
impl Sync for CompactionFailure
impl Unpin for CompactionFailure
impl UnsafeUnpin for CompactionFailure
impl UnwindSafe for CompactionFailure
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more