pub struct RecallTurnMetadata {
pub selected_memory_ids: Vec<MemoryId>,
pub source_classes: Vec<MemorySource>,
pub rank_reasons: Vec<RankReason>,
pub retained_bytes: u64,
pub retained_tokens: u64,
pub dropped_bytes: u64,
pub truncation_count: u32,
pub recall_latency: Duration,
pub withheld_count: u32,
pub skipped_count: u32,
}Expand description
Spec §10.4 explainability metadata retained for the current turn’s
accepted recall. Counters, identities, and durations only — bounded by
the §10.3 record limits; never memory content. Rendered for /memory why
by RecallTurnMetadata::render (task B5).
Fields§
§selected_memory_ids: Vec<MemoryId>Selected memory identities, in contribution order.
source_classes: Vec<MemorySource>Source class of each selected record (parallel to the IDs).
rank_reasons: Vec<RankReason>Rank reasons across all selected records (flattened).
retained_bytes: u64Bytes of rendered contribution retained after bounding.
retained_tokens: u64Conservative token estimate of the retained rendered text.
dropped_bytes: u64Bytes dropped by bounding (records + rendered block).
truncation_count: u32Truncated-record count (provider-reported, floored by the host’s own per-record observation).
recall_latency: DurationWall-clock recall latency for the accepted call.
withheld_count: u32Records withheld by disclosure policy (counted, never named).
skipped_count: u32Candidates considered but not selected.
Implementations§
Source§impl RecallTurnMetadata
impl RecallTurnMetadata
Sourcepub fn render(&self) -> String
pub fn render(&self) -> String
Human-readable /memory why text (task B5, spec §10.4). Mirrors
MemoryContextStatus::render: bounded metadata only — selected
IDs, source classes, plain-words rank reasons, byte/token
accounting, truncation count, latency, and withheld/skipped
counts — never memory body content.
Trait Implementations§
Source§impl Clone for RecallTurnMetadata
impl Clone for RecallTurnMetadata
Source§fn clone(&self) -> RecallTurnMetadata
fn clone(&self) -> RecallTurnMetadata
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecallTurnMetadata
impl Debug for RecallTurnMetadata
impl Eq for RecallTurnMetadata
Source§impl PartialEq for RecallTurnMetadata
impl PartialEq for RecallTurnMetadata
impl StructuralPartialEq for RecallTurnMetadata
Auto Trait Implementations§
impl Freeze for RecallTurnMetadata
impl RefUnwindSafe for RecallTurnMetadata
impl Send for RecallTurnMetadata
impl Sync for RecallTurnMetadata
impl Unpin for RecallTurnMetadata
impl UnsafeUnpin for RecallTurnMetadata
impl UnwindSafe for RecallTurnMetadata
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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