Skip to main content

GraphRecordLayout

Trait GraphRecordLayout 

Source
pub trait GraphRecordLayout: Send + Sync {
    // Required methods
    fn key(
        &self,
        database: DatabaseId,
        key: GraphRecordKey<'_>,
        control: &StorageReadControl,
    ) -> VersionResult<BudgetedVec<u8>>;
    fn is_validity_key(&self, key: &[u8]) -> VersionResult<bool>;
    fn membership_graph(
        &self,
        key: &[u8],
        control: &StorageReadControl,
    ) -> VersionResult<BudgetedVec<u8>>;
    fn membership_entity(
        &self,
        key: &[u8],
        control: &StorageReadControl,
    ) -> VersionResult<(GraphEntityKind, u64)>;
    fn path_validity_key(
        &self,
        view: &MergedRecordSnapshot,
        database: DatabaseId,
        graph: &str,
        key: &[u8],
        value: &[u8],
        control: &StorageReadControl,
    ) -> VersionResult<Option<BudgetedVec<u8>>>;
    fn invalidate(
        &self,
        key: &[u8],
        value: &[u8],
        control: &StorageReadControl,
    ) -> VersionResult<Option<BudgetedVec<u8>>>;
    fn is_published(
        &self,
        view: &MergedRecordSnapshot,
        key: &[u8],
        value: &[u8],
        graph: &str,
        definition: &str,
        control: &StorageReadControl,
    ) -> VersionResult<bool>;
    fn definition_matches(
        &self,
        key: &[u8],
        value: &[u8],
        definition: &str,
        control: &StorageReadControl,
    ) -> VersionResult<bool>;
}
Expand description

Physical addressing and row codecs only. Common MVCC owns dependency discovery, invalidation order, build validation and commit retries.

Required Methods§

Source

fn key( &self, database: DatabaseId, key: GraphRecordKey<'_>, control: &StorageReadControl, ) -> VersionResult<BudgetedVec<u8>>

Source

fn is_validity_key(&self, key: &[u8]) -> VersionResult<bool>

Source

fn membership_graph( &self, key: &[u8], control: &StorageReadControl, ) -> VersionResult<BudgetedVec<u8>>

Source

fn membership_entity( &self, key: &[u8], control: &StorageReadControl, ) -> VersionResult<(GraphEntityKind, u64)>

Source

fn path_validity_key( &self, view: &MergedRecordSnapshot, database: DatabaseId, graph: &str, key: &[u8], value: &[u8], control: &StorageReadControl, ) -> VersionResult<Option<BudgetedVec<u8>>>

Decode one path-directory entry; return its validity key only when it belongs to the selected graph.

Source

fn invalidate( &self, key: &[u8], value: &[u8], control: &StorageReadControl, ) -> VersionResult<Option<BudgetedVec<u8>>>

Source

fn is_published( &self, view: &MergedRecordSnapshot, key: &[u8], value: &[u8], graph: &str, definition: &str, control: &StorageReadControl, ) -> VersionResult<bool>

Return whether the transaction’s final private state still contains this completed build, rather than a later clear or invalidation.

Source

fn definition_matches( &self, key: &[u8], value: &[u8], definition: &str, control: &StorageReadControl, ) -> VersionResult<bool>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§