CarriedDrafter

Struct CarriedDrafter 

Source
pub struct CarriedDrafter {
    pub block_table: Vec<u32>,
    pub rows: usize,
    pub last_pair_key: Option<usize>,
    pub tokens: Vec<u32>,
    pub session_hash: u64,
}
Expand description

2026-09-25: The drafter KV of a finished turn, held in the model’s single carry slot for the next turn of the same session.

Fields§

§block_table: Vec<u32>

2026-09-25: Drafter KV blocks moved out of the finished sequence’s proposer state (DraftProposer::take_drafter_kv), so freeing that state does not release them.

§rows: usize

2026-09-25: Drafter rows resident in those blocks.

§last_pair_key: Option<usize>

2026-09-25: Sequence-space pair key of the newest resident row.

§tokens: Vec<u32>

2026-09-25: The finished sequence’s tokens. Self::usable_by keeps only the rows within their common prefix with a new prompt; a common prefix does not show that the rows belong to the new request.

§session_hash: u64

2026-09-25: SequenceState::session_hash of the sequence that left these rows. The slot holds whichever sequence finished last, so adoption also requires this to match.

Implementations§

Source§

impl CarriedDrafter

Source

pub fn common_prefix_len(&self, prompt: &[u32]) -> usize

2026-09-25: Length of the common prefix of self.tokens and prompt.

Source

pub fn session_matches(&self, session_hash: u64) -> bool

2026-09-25: Whether these rows belong to session_hash. A zero hash never matches: an unstamped request has no session to check. The SSM snapshot pool’s session_matches instead accepts 0.

Source

pub fn usable_by( &self, prompt: &[u32], session_hash: u64, ) -> Option<(usize, usize)>

2026-09-25: The (rows, last_pair_key) of this entry that prompt may adopt, or None. None unless Self::session_matches.

Pair key k consumed tokens[0..=k + 1], so keys up to the common prefix length minus 2 survive. The rows above that key are dropped from the tail, one row per key. When the tail had key gaps the returned key can be above the newest surviving row’s real key, which only makes the append start later.

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,