pub struct MaterializedState {
pub seq_anchor: i64,
pub timestamp: String,
pub concepts: HashMap<String, NodeAttributes>,
pub edges: Vec<(String, String, String, String, String)>,
pub predates_recorded_history: bool,
}Expand description
Full materialized state reconstructed from transaction_log replay (§5.5).
Fields§
§seq_anchor: i64§timestamp: String§concepts: HashMap<String, NodeAttributes>§edges: Vec<(String, String, String, String, String)>§predates_recorded_history: boolNothing had been recorded yet at timestamp (0.8.0, B5, D-121).
An empty state has two meanings and a caller can act differently on them. Everything was retired by then is a fact about the data; the ledger had not started is a fact about the question. Both come back as zero concepts and zero edges, so the difference has to be carried rather than inferred.
Set only when the log was verified intact — see
hot_log_reach. If rows had been archived away, ts below the hot
floor is not “before history”, it is “the history is in the other file”,
and that path raises instead of answering.
#[serde(default)] so the field is additive: a snapshot written without
it deserialises with false, which is the right answer for any state
that had rows to fold. Old snapshots cannot actually reach this code —
the container carries SCHEMA_VERSION and v8 refused every v7 file
(D-043) — but the tolerance costs nothing and the next field to arrive
may not land in a release that bumps the schema.
Trait Implementations§
Source§impl Clone for MaterializedState
impl Clone for MaterializedState
Source§fn clone(&self) -> MaterializedState
fn clone(&self) -> MaterializedState
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 MaterializedState
impl Debug for MaterializedState
Source§impl<'de> Deserialize<'de> for MaterializedState
impl<'de> Deserialize<'de> for MaterializedState
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>,
Auto Trait Implementations§
impl Freeze for MaterializedState
impl RefUnwindSafe for MaterializedState
impl Send for MaterializedState
impl Sync for MaterializedState
impl Unpin for MaterializedState
impl UnsafeUnpin for MaterializedState
impl UnwindSafe for MaterializedState
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request