pub struct GenericKnowledgeLedger {
pub records: BTreeMap<KnowledgeHolderRef, BTreeMap<KnowledgeRecordId, KnowledgeRecord>>,
}Expand description
Holder-relative generic knowledge ledger used by the current snapshot.
Fields§
§records: BTreeMap<KnowledgeHolderRef, BTreeMap<KnowledgeRecordId, KnowledgeRecord>>Implementations§
Source§impl GenericKnowledgeLedger
impl GenericKnowledgeLedger
pub fn for_holder( &self, holder: &KnowledgeHolderRef, ) -> Option<&BTreeMap<KnowledgeRecordId, KnowledgeRecord>>
Sourcepub fn insert_records(
&mut self,
holder: KnowledgeHolderRef,
records: impl IntoIterator<Item = KnowledgeRecord>,
) -> Result<(), KnowledgeLedgerError>
pub fn insert_records( &mut self, holder: KnowledgeHolderRef, records: impl IntoIterator<Item = KnowledgeRecord>, ) -> Result<(), KnowledgeLedgerError>
Atomically appends records after validating holder and global ID invariants.
§Errors
Returns KnowledgeLedgerError::HolderMismatch when any record names a
different holder, or KnowledgeLedgerError::DuplicateRecordId when an
ID already exists anywhere in the ledger or repeats within the batch.
Sourcepub fn query(
&self,
holder: KnowledgeHolderRef,
query: &KnowledgeQuery,
read_cut: KnowledgeReadCut,
) -> Result<KnowledgeQueryResult, KnowledgeQueryError>
pub fn query( &self, holder: KnowledgeHolderRef, query: &KnowledgeQuery, read_cut: KnowledgeReadCut, ) -> Result<KnowledgeQueryResult, KnowledgeQueryError>
Returns one deterministic page from a holder’s ledger at the supplied cut.
§Errors
Returns KnowledgeQueryError::InvalidLimit for a zero or oversized
page and KnowledgeQueryError::InvalidCursor when a cursor belongs to
another holder, query, or ledger position. It returns
KnowledgeQueryError::ReadCutUnavailable when the cursor’s committed
knowledge or overlay root is no longer the supplied view. It returns
KnowledgeQueryError::InvalidLedger for internally inconsistent stored
records and KnowledgeQueryError::Encoding if query hashing fails.