pub struct CompactionOutcome {
pub trace_id: Uuid,
pub strategy: FallbackStrategy,
pub before_tokens: usize,
pub after_tokens: usize,
pub kept_messages: usize,
}Expand description
Emitted when a compaction pass finishes successfully.
§Examples
use codetether_agent::session::{CompactionOutcome, FallbackStrategy};
use uuid::Uuid;
let o = CompactionOutcome {
trace_id: Uuid::nil(),
strategy: FallbackStrategy::Rlm,
before_tokens: 140_000,
after_tokens: 22_400,
kept_messages: 12,
};
assert!(o.reduction() > 0.8);Fields§
§trace_id: UuidCorrelates with the originating CompactionStart.
strategy: FallbackStrategyWhich strategy ultimately produced the final context.
before_tokens: usizeEstimated request tokens before compaction.
after_tokens: usizeEstimated request tokens after compaction.
kept_messages: usizeVerbatim messages retained in the compacted transcript.
Implementations§
Source§impl CompactionOutcome
impl CompactionOutcome
Sourcepub fn reduction(&self) -> f64
pub fn reduction(&self) -> f64
1.0 - (after / before), clamped to [0.0, 1.0].
A reduction of 0.9 means 90 % of tokens were removed. Returns
0.0 for pathological inputs (before_tokens == 0).
§Examples
use codetether_agent::session::{CompactionOutcome, FallbackStrategy};
use uuid::Uuid;
let o = CompactionOutcome {
trace_id: Uuid::nil(),
strategy: FallbackStrategy::Rlm,
before_tokens: 1000, after_tokens: 100, kept_messages: 0,
};
assert!((o.reduction() - 0.9).abs() < 1e-9);Trait Implementations§
Source§impl Clone for CompactionOutcome
impl Clone for CompactionOutcome
Source§fn clone(&self) -> CompactionOutcome
fn clone(&self) -> CompactionOutcome
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 CompactionOutcome
impl Debug for CompactionOutcome
Source§impl<'de> Deserialize<'de> for CompactionOutcome
impl<'de> Deserialize<'de> for CompactionOutcome
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 CompactionOutcome
impl RefUnwindSafe for CompactionOutcome
impl Send for CompactionOutcome
impl Sync for CompactionOutcome
impl Unpin for CompactionOutcome
impl UnsafeUnpin for CompactionOutcome
impl UnwindSafe for CompactionOutcome
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