pub struct MemoryMarkerBackend { /* private fields */ }Expand description
In-memory implementation of MarkerBackend.
Stores snapshots, high-fidelity markers, and gaps as Vec tables, and the slot dictionary as
an [IndexMap] keyed by slot for write-once semantics. Each record’s integrity hash is
retained alongside it so the verifier can recompute and compare. The scan_* methods return
records in their documented sort order regardless of append order, matching the keyed
persistent backend. One instance owns at most one open run at a time; opening a new run
replaces the previous one (markers never block boot). Used by writer and reader unit tests and
by the cfg(madsim) simulation lane.
Implementations§
Source§impl MemoryMarkerBackend
impl MemoryMarkerBackend
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty MemoryMarkerBackend with no run open.
Trait Implementations§
Source§impl Debug for MemoryMarkerBackend
impl Debug for MemoryMarkerBackend
Source§impl Default for MemoryMarkerBackend
impl Default for MemoryMarkerBackend
Source§fn default() -> MemoryMarkerBackend
fn default() -> MemoryMarkerBackend
Returns the “default value” for a type. Read more
Source§impl MarkerBackend for MemoryMarkerBackend
impl MarkerBackend for MemoryMarkerBackend
Source§fn open_run(&mut self, manifest: MarkerManifest) -> Result<(), EventStoreError>
fn open_run(&mut self, manifest: MarkerManifest) -> Result<(), EventStoreError>
Opens a run for marker capture with the supplied manifest. Read more
Source§fn append_snapshot(
&mut self,
snapshot: &DataCursorSnapshot,
hash: [u8; 32],
) -> Result<(), EventStoreError>
fn append_snapshot( &mut self, snapshot: &DataCursorSnapshot, hash: [u8; 32], ) -> Result<(), EventStoreError>
Appends a cursor snapshot with its precomputed integrity hash. Read more
Source§fn append_hifi(
&mut self,
marker: &HiFiMarker,
hash: [u8; 32],
) -> Result<(), EventStoreError>
fn append_hifi( &mut self, marker: &HiFiMarker, hash: [u8; 32], ) -> Result<(), EventStoreError>
Appends a high-fidelity marker with its precomputed integrity hash. Read more
Source§fn append_gap(
&mut self,
gap: &MarkerGap,
hash: [u8; 32],
) -> Result<(), EventStoreError>
fn append_gap( &mut self, gap: &MarkerGap, hash: [u8; 32], ) -> Result<(), EventStoreError>
Appends a gap covering a dropped range of marker sequences, with its precomputed integrity
hash. Read more
Source§fn put_dict(
&mut self,
entry: &StreamDictEntry,
hash: [u8; 32],
) -> Result<(), EventStoreError>
fn put_dict( &mut self, entry: &StreamDictEntry, hash: [u8; 32], ) -> Result<(), EventStoreError>
Records a slot dictionary entry with its precomputed integrity hash, write-once by slot. Read more
Source§fn scan_snapshots(&self) -> Result<Vec<DataCursorSnapshot>, EventStoreError>
fn scan_snapshots(&self) -> Result<Vec<DataCursorSnapshot>, EventStoreError>
Scans all cursor snapshots in ascending
marker_seq order. Read moreSource§fn scan_snapshot_records(
&self,
) -> Result<Option<Vec<StoredMarkerRecord<DataCursorSnapshot>>>, EventStoreError>
fn scan_snapshot_records( &self, ) -> Result<Option<Vec<StoredMarkerRecord<DataCursorSnapshot>>>, EventStoreError>
Scans cursor snapshots with stored integrity hashes when the backend exposes them. Read more
Source§fn scan_hifi(&self) -> Result<Vec<HiFiMarker>, EventStoreError>
fn scan_hifi(&self) -> Result<Vec<HiFiMarker>, EventStoreError>
Scans all high-fidelity markers in ascending
marker_seq order. Read moreSource§fn scan_hifi_records(
&self,
) -> Result<Option<Vec<StoredMarkerRecord<HiFiMarker>>>, EventStoreError>
fn scan_hifi_records( &self, ) -> Result<Option<Vec<StoredMarkerRecord<HiFiMarker>>>, EventStoreError>
Scans high-fidelity markers with stored integrity hashes when the backend exposes them. Read more
Source§fn scan_gaps(&self) -> Result<Vec<MarkerGap>, EventStoreError>
fn scan_gaps(&self) -> Result<Vec<MarkerGap>, EventStoreError>
Scans all recorded gaps in ascending
from_marker_seq order. Read moreSource§fn scan_gap_records(
&self,
) -> Result<Option<Vec<StoredMarkerRecord<MarkerGap>>>, EventStoreError>
fn scan_gap_records( &self, ) -> Result<Option<Vec<StoredMarkerRecord<MarkerGap>>>, EventStoreError>
Scans marker gaps with stored integrity hashes when the backend exposes them. Read more
Source§fn scan_dict(&self) -> Result<Vec<StreamDictEntry>, EventStoreError>
fn scan_dict(&self) -> Result<Vec<StreamDictEntry>, EventStoreError>
Scans all slot dictionary entries in ascending slot order. Read more
Source§fn scan_dict_records(
&self,
) -> Result<Option<Vec<StoredMarkerRecord<StreamDictEntry>>>, EventStoreError>
fn scan_dict_records( &self, ) -> Result<Option<Vec<StoredMarkerRecord<StreamDictEntry>>>, EventStoreError>
Scans dictionary entries with stored integrity hashes when the backend exposes them. Read more
Source§fn seal(&mut self, status: RunStatus) -> Result<(), EventStoreError>
fn seal(&mut self, status: RunStatus) -> Result<(), EventStoreError>
Seals the open run with the given terminal status. Read more
Source§fn manifest(&self) -> Result<MarkerManifest, EventStoreError>
fn manifest(&self) -> Result<MarkerManifest, EventStoreError>
Returns the current marker manifest. Read more
Auto Trait Implementations§
impl Freeze for MemoryMarkerBackend
impl RefUnwindSafe for MemoryMarkerBackend
impl Send for MemoryMarkerBackend
impl Sync for MemoryMarkerBackend
impl Unpin for MemoryMarkerBackend
impl UnsafeUnpin for MemoryMarkerBackend
impl UnwindSafe for MemoryMarkerBackend
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§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