pub struct ContextSizing {
pub model_max: Option<usize>,
pub effective: Option<usize>,
pub source: Option<NumCtxSource>,
pub max_output: Option<usize>,
pub compacts_natively: bool,
}Expand description
Resolved context sizing for a turn. For most providers model_max == effective (the static advertised window). For Ollama they differ:
model_max is the probed architectural window, while effective is what we
actually enforce as num_ctx (auto-fitted to memory, capped, or an
override). Compaction and the status bar use effective; “model supports up
to X” uses model_max.
Fields§
§model_max: Option<usize>§effective: Option<usize>§source: Option<NumCtxSource>How effective was chosen (Ollama only). None for static/advertised.
max_output: Option<usize>The model’s per-response output ceiling, when the provider exposes one
(/models metadata, or a documented static table). Rides the same
resolve→reducer pipeline as the window so provider_capabilities can be
refreshed live.
compacts_natively: boolWhether the provider compacts the conversation itself when a turn asks
(ChatRequest::native_compaction): Anthropic, until the model refuses.
Trait Implementations§
Source§impl Clone for ContextSizing
impl Clone for ContextSizing
impl Copy for ContextSizing
Source§impl Debug for ContextSizing
impl Debug for ContextSizing
Auto Trait Implementations§
impl Freeze for ContextSizing
impl RefUnwindSafe for ContextSizing
impl Send for ContextSizing
impl Sync for ContextSizing
impl Unpin for ContextSizing
impl UnsafeUnpin for ContextSizing
impl UnwindSafe for ContextSizing
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<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> ⓘ
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> ⓘ
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