pub struct ContextAssessment {
pub provider_window: u64,
pub breakdown: ContextBreakdown,
pub reserves: ContextReserves,
pub history_messages: usize,
pub anchored_tokens: Option<u64>,
}Expand description
One request-aware budget assessment. Pure data — frontends read the decision, they never recompute it.
Fields§
§provider_window: u64§breakdown: ContextBreakdown§reserves: ContextReserves§history_messages: usize§anchored_tokens: Option<u64>Footprint measured from the provider’s count of an earlier request
this one extends (UsageAnchor); None = estimate only.
Implementations§
Source§impl ContextAssessment
impl ContextAssessment
Sourcepub fn used_tokens(&self) -> u64
pub fn used_tokens(&self) -> u64
The request’s footprint: anchored to the provider’s last reported input when this request extends that one, otherwise the estimate.
Sourcepub fn estimated_tokens(&self) -> u64
pub fn estimated_tokens(&self) -> u64
Conservative estimate across every request segment, whether or not an anchor applies. Calibration samples and the fixed-part overhead of successor sizing are in these units.
Sourcepub fn fixed_tokens(&self) -> u64
pub fn fixed_tokens(&self) -> u64
The estimate of the request’s fixed part: system, tool schemas, skills and memory (everything but the messages and their framing).
Sourcepub fn anchored(
self,
anchor: Option<&UsageAnchor>,
messages: &[SharedMessage],
) -> Self
pub fn anchored( self, anchor: Option<&UsageAnchor>, messages: &[SharedMessage], ) -> Self
Anchor this assessment to anchor when messages (the messages it
assessed) extend the anchored request’s verbatim.
Sourcepub fn budget_tokens(&self) -> u64
pub fn budget_tokens(&self) -> u64
Tokens the context may occupy after all reserves: window minus reserves, floored at zero (a window smaller than the reserves has no admissible context at all).
Sourcepub fn remaining_tokens(&self) -> u64
pub fn remaining_tokens(&self) -> u64
Remaining admissible capacity before the trigger fires.
Sourcepub fn should_compact(&self) -> bool
pub fn should_compact(&self) -> bool
The single cross-frontend compaction trigger: usage reached the budget AND there is enough history for a summary to fold.
Trait Implementations§
Source§impl Clone for ContextAssessment
impl Clone for ContextAssessment
impl Copy for ContextAssessment
Source§impl Debug for ContextAssessment
impl Debug for ContextAssessment
impl Eq for ContextAssessment
Source§impl PartialEq for ContextAssessment
impl PartialEq for ContextAssessment
impl StructuralPartialEq for ContextAssessment
Auto Trait Implementations§
impl Freeze for ContextAssessment
impl RefUnwindSafe for ContextAssessment
impl Send for ContextAssessment
impl Sync for ContextAssessment
impl Unpin for ContextAssessment
impl UnsafeUnpin for ContextAssessment
impl UnwindSafe for ContextAssessment
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.