pub struct SeenKeys { /* private fields */ }Expand description
The set of key tuples an invocation wrote, accumulated across pages.
Deliberately stores only keys, not records: memory is O(rows in scope × key width) rather than O(payload).
Implementations§
Source§impl SeenKeys
impl SeenKeys
pub fn new() -> Self
Sourcepub fn record_page(&mut self, page: &[Value], key: &[String], max_keys: usize)
pub fn record_page(&mut self, page: &[Value], key: &[String], max_keys: usize)
Record the keys written for one page. Rows missing a key column, or carrying a null there, are ignored — they cannot be matched by a keyed delete anyway, and the write path already routes them to the DLQ or fails the batch.
Sourcepub fn overflowed(&self) -> bool
pub fn overflowed(&self) -> bool
Whether the ceiling was breached, which makes the cleanup unsafe to run.
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn keys(&self) -> &[KeyTuple]
Sourcepub fn overflow_error(&self, max_keys: usize) -> FaucetError
pub fn overflow_error(&self, max_keys: usize) -> FaucetError
The typed error a breached ceiling produces. Separate from the accumulator so the caller decides whether to fail the run or log — but never to delete.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SeenKeys
impl RefUnwindSafe for SeenKeys
impl Send for SeenKeys
impl Sync for SeenKeys
impl Unpin for SeenKeys
impl UnsafeUnpin for SeenKeys
impl UnwindSafe for SeenKeys
Blanket Implementations§
impl<T> Allocation for T
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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::Request