Skip to main content

ContextBudget

Struct ContextBudget 

Source
pub struct ContextBudget { /* private fields */ }
Expand description

Assembles messages from multiple context slots within a token budget.

Slots are sorted by priority (lowest value = highest priority). Higher-priority slots are included first. Lower-priority slots are dropped if the budget is exceeded.

Implementations§

Source§

impl ContextBudget

Source

pub fn new(max_tokens: usize, counter: Arc<dyn TokenCounter>) -> Self

Source

pub fn assemble(&self, slots: Vec<ContextSlot>) -> Vec<Message>

Assemble messages from slots that fit within the token budget.

Slots are processed in priority order (CRITICAL first, LOW last). Each slot’s messages are included if they fit. Slots with reserved_tokens > 0 are guaranteed inclusion (if total reserved fits within budget).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.