pub struct DecisionState {
pub controllers: OrdMap<String, Arc<DecisionControllerBinding>>,
pub tickets: OrdMap<DecisionTicketId, Arc<DecisionTicket>>,
pub traces: PersistentDecisionLog<DecisionTrace>,
/* private fields */
}Fields§
§controllers: OrdMap<String, Arc<DecisionControllerBinding>>§tickets: OrdMap<DecisionTicketId, Arc<DecisionTicket>>§traces: PersistentDecisionLog<DecisionTrace>Implementations§
Source§impl DecisionState
impl DecisionState
pub fn is_empty(&self) -> bool
pub fn decision_archive_bucket_page( &self, bucket: DecisionArchivePageKey, ) -> Result<Option<DecisionArchiveBucketPage>, DecisionError>
pub fn decision_archive_bucket_page_ids( &self, ) -> &OrdMap<DecisionArchivePageKey, String>
Sourcepub fn paged_checkpoint_hot_state(&self) -> DecisionState
pub fn paged_checkpoint_hot_state(&self) -> DecisionState
Returns the bounded hot decision state used by a paged checkpoint. Persistent maps/logs remain structurally shared; archive locator buckets are represented by the separately committed page directory.
pub fn archived_history_count(&self) -> usize
pub fn controller(&self, id: &str) -> Option<&DecisionControllerBinding>
pub fn ticket(&self, id: DecisionTicketId) -> Option<&DecisionTicket>
pub fn trace(&self, id: DecisionTraceId) -> Option<&DecisionTrace>
pub fn attempt(&self, id: DecisionRequestId) -> Option<&DecisionAttemptRecord>
pub const fn attempts(&self) -> &PersistentDecisionLog<DecisionAttemptRecord>
Sourcepub fn decision_locator(
&self,
key: &DecisionHistoryKey,
) -> DecisionHistoryLocation
pub fn decision_locator( &self, key: &DecisionHistoryKey, ) -> DecisionHistoryLocation
Returns the current hot/archive location without conflating an unavailable archive page with an absent record.
Sourcepub fn decision_locator_with_provider(
&self,
key: &DecisionHistoryKey,
provider: &dyn DecisionArchiveProvider,
) -> Result<DecisionHistoryLocation, DecisionError>
pub fn decision_locator_with_provider( &self, key: &DecisionHistoryKey, provider: &dyn DecisionArchiveProvider, ) -> Result<DecisionHistoryLocation, DecisionError>
Resolves an exact decision-history location through the committed state-page directory when the bucket is not resident. Missing provider data is never reported as an absent key.
pub fn archive_receipt( &self, key: &DecisionHistoryKey, ) -> Option<DecisionArchiveReceipt>
pub fn archived_history_keys(&self) -> impl Iterator<Item = &DecisionHistoryKey>
Sourcepub fn required_archived_dependency_page_keys(
&self,
) -> Result<OrdSet<DecisionArchivePageKey>, DecisionError>
pub fn required_archived_dependency_page_keys( &self, ) -> Result<OrdSet<DecisionArchivePageKey>, DecisionError>
Returns the exact locator pages required to validate references from bounded hot state into archived decision history. The result is bounded by hot traces, resolved tickets, and accepted attempts rather than by total archive size.
Sourcepub fn paged_checkpoint_parts(
&self,
) -> Result<(DecisionState, BTreeMap<DecisionArchivePageKey, Vec<DecisionArchiveReceipt>>), DecisionError>
pub fn paged_checkpoint_parts( &self, ) -> Result<(DecisionState, BTreeMap<DecisionArchivePageKey, Vec<DecisionArchiveReceipt>>), DecisionError>
Separates bounded hot decision state from stable hash-prefix archive buckets. A checkpoint can rewrite only buckets touched by this archive generation instead of serializing one all-history page.
pub fn from_paged_checkpoint_parts( hot: DecisionState, buckets: impl IntoIterator<Item = (DecisionArchivePageKey, Vec<DecisionArchiveReceipt>)>, ) -> Result<DecisionState, DecisionError>
Sourcepub fn from_paged_checkpoint_root(
hot: DecisionState,
archive_bucket_page_ids: OrdMap<DecisionArchivePageKey, String>,
archive_receipt_count: u64,
archive_receipt_root: &str,
) -> Result<DecisionState, DecisionError>
pub fn from_paged_checkpoint_root( hot: DecisionState, archive_bucket_page_ids: OrdMap<DecisionArchivePageKey, String>, archive_receipt_count: u64, archive_receipt_root: &str, ) -> Result<DecisionState, DecisionError>
Restores the bounded hot decision state and authenticated archive-page directory without decoding any historical locator bucket.
Sourcepub fn from_paged_checkpoint_root_with_resident_pages(
hot: DecisionState,
archive_bucket_page_ids: OrdMap<DecisionArchivePageKey, String>,
archive_receipt_count: u64,
archive_receipt_root: &str,
resident_pages: impl IntoIterator<Item = DecisionArchiveBucketPage>,
) -> Result<DecisionState, DecisionError>
pub fn from_paged_checkpoint_root_with_resident_pages( hot: DecisionState, archive_bucket_page_ids: OrdMap<DecisionArchivePageKey, String>, archive_receipt_count: u64, archive_receipt_root: &str, resident_pages: impl IntoIterator<Item = DecisionArchiveBucketPage>, ) -> Result<DecisionState, DecisionError>
Restores a root-only checkpoint while retaining only locator pages needed to validate hot-to-archive references. Every supplied page is authenticated against the committed directory before its receipts become resident.
pub fn archive_receipt_commitment(&self) -> Result<String, DecisionError>
Returns the authoritative decision-state commitment independently of which authenticated archive locator pages are currently resident.
pub fn archived_decision_history_page( &self, cursor: Option<&DecisionHistoryCursor>, budget: DecisionHistoryQueryBudget, provider: &dyn DecisionArchiveProvider, ) -> Result<DecisionHistoryPage, DecisionError>
Sourcepub fn archive_reachability(
&self,
provider: &dyn DecisionArchiveProvider,
) -> Result<DecisionArchiveReachability, DecisionError>
pub fn archive_reachability( &self, provider: &dyn DecisionArchiveProvider, ) -> Result<DecisionArchiveReachability, DecisionError>
Enumerates every archive page and payload locator committed by this decision root. This is an offline GC operation; ordinary lookups still load only the exact hash bucket for the requested key.
pub fn load_decision_history( &self, key: &DecisionHistoryKey, provider: &dyn DecisionArchiveProvider, ) -> Result<Option<DecisionArchiveRecord>, DecisionError>
pub fn prepare_decision_archive( &self, keys: &[DecisionHistoryKey], ) -> Result<PreparedDecisionArchive, DecisionError>
pub fn commit_decision_archive( &self, prepared: &PreparedDecisionArchive, provider: &dyn DecisionArchiveProvider, ) -> Result<DecisionState, DecisionError>
pub fn verify_decision_archive( &self, prepared: &PreparedDecisionArchive, provider: &dyn DecisionArchiveProvider, ) -> Result<VerifiedDecisionArchiveCommit, DecisionError>
pub fn commit_verified_decision_archive( &self, verified: &VerifiedDecisionArchiveCommit, ) -> Result<DecisionState, DecisionError>
pub fn hot_history_commitment(&self) -> Result<String, DecisionError>
pub fn decision_hot_state(&self) -> DecisionHotState
pub fn append_attempt( &mut self, attempt: DecisionAttemptRecord, ) -> Result<(), DecisionError>
pub fn open_tickets(&self) -> impl Iterator<Item = &DecisionTicket>
pub fn validate(&self) -> Result<(), DecisionError>
pub fn apply( &mut self, mutation: DecisionMutation, at: SimTime, trace_id: Option<DecisionTraceId>, ) -> Result<PreparedDecision, DecisionError>
pub fn advance_time(&mut self, at: SimTime) -> Result<(), DecisionError>
Trait Implementations§
Source§impl Clone for DecisionState
impl Clone for DecisionState
Source§fn clone(&self) -> DecisionState
fn clone(&self) -> DecisionState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more