pub struct SummaryIndex { /* private fields */ }Expand description
Hierarchical summary cache over the chat transcript.
Cache hit: returns immediately via Self::get.
Cache miss: Self::summary_for calls a producer, then caches.
Implementations§
Source§impl SummaryIndex
impl SummaryIndex
Sourcepub fn generation(&self) -> u64
pub fn generation(&self) -> u64
Current generation counter.
Sourcepub fn get(&self, range: SummaryRange) -> Option<&SummaryNode>
pub fn get(&self, range: SummaryRange) -> Option<&SummaryNode>
Exact range lookup.
Sourcepub fn entries(&self) -> impl Iterator<Item = (&SummaryRange, &SummaryNode)>
pub fn entries(&self) -> impl Iterator<Item = (&SummaryRange, &SummaryNode)>
Iterate over (range, node) pairs in range order.
Source§impl SummaryIndex
impl SummaryIndex
Sourcepub async fn summary_for<F, Fut>(
&mut self,
range: SummaryRange,
producer: F,
) -> Result<SummaryNode>
pub async fn summary_for<F, Fut>( &mut self, range: SummaryRange, producer: F, ) -> Result<SummaryNode>
Main read path for derivation policies.
Cache hit: returns immediately. Cache miss: calls producer
which encapsulates RLM summarisation, then caches the result.
§Errors
Returns the producer’s error if the RLM call fails.
Source§impl SummaryIndex
impl SummaryIndex
Sourcepub fn insert(
&mut self,
range: SummaryRange,
node: SummaryNode,
) -> Option<SummaryNode>
pub fn insert( &mut self, range: SummaryRange, node: SummaryNode, ) -> Option<SummaryNode>
Insert a node, maintaining LRU ordering and evicting if over budget.
Sourcepub fn append(&mut self, idx: usize)
pub fn append(&mut self, idx: usize)
Hot-path hook for Session::add_message.
Drops every cached summary whose range covers idx.
Sourcepub fn invalidate_after(&mut self, idx: usize)
pub fn invalidate_after(&mut self, idx: usize)
Drop ranges whose end > idx (compaction/reset).
Trait Implementations§
Source§impl Clone for SummaryIndex
impl Clone for SummaryIndex
Source§fn clone(&self) -> SummaryIndex
fn clone(&self) -> SummaryIndex
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SummaryIndex
impl Debug for SummaryIndex
Source§impl Default for SummaryIndex
impl Default for SummaryIndex
Source§fn default() -> SummaryIndex
fn default() -> SummaryIndex
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for SummaryIndex
impl<'de> Deserialize<'de> for SummaryIndex
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SummaryIndex
impl RefUnwindSafe for SummaryIndex
impl Send for SummaryIndex
impl Sync for SummaryIndex
impl Unpin for SummaryIndex
impl UnsafeUnpin for SummaryIndex
impl UnwindSafe for SummaryIndex
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more