pub struct RetractableFirstValueAccumulator { /* private fields */ }Expand description
Retractable FIRST_VALUE accumulator for changelog/retraction mode.
Stores all (timestamp, value) entries sorted by timestamp ascending.
On retraction, removes the entry and recomputes the first value.
This is necessary for EMIT CHANGES with OHLC queries where the
open price may need to be retracted.
§Ring Architecture
This is a Ring 1 structure (allocates). Ring 0 uses the non-retractable
super::window::FirstValueAccumulator via the static dispatch path.
Uses BTreeMap<i64, Vec<i64>> (timestamp → values) for O(log n) insert/remove
and O(1) first-value access via first_key_value().
Implementations§
Trait Implementations§
Source§impl Clone for RetractableFirstValueAccumulator
impl Clone for RetractableFirstValueAccumulator
Source§fn clone(&self) -> RetractableFirstValueAccumulator
fn clone(&self) -> RetractableFirstValueAccumulator
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for RetractableFirstValueAccumulator
impl Default for RetractableFirstValueAccumulator
Source§fn default() -> RetractableFirstValueAccumulator
fn default() -> RetractableFirstValueAccumulator
Returns the “default value” for a type. Read more
Source§impl RetractableAccumulator for RetractableFirstValueAccumulator
impl RetractableAccumulator for RetractableFirstValueAccumulator
Auto Trait Implementations§
impl Freeze for RetractableFirstValueAccumulator
impl RefUnwindSafe for RetractableFirstValueAccumulator
impl Send for RetractableFirstValueAccumulator
impl Sync for RetractableFirstValueAccumulator
impl Unpin for RetractableFirstValueAccumulator
impl UnsafeUnpin for RetractableFirstValueAccumulator
impl UnwindSafe for RetractableFirstValueAccumulator
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.