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§
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)>
Sourcefn path_validity_key(
&self,
view: &MergedRecordSnapshot,
database: DatabaseId,
graph: &str,
key: &[u8],
value: &[u8],
control: &StorageReadControl,
) -> VersionResult<Option<BudgetedVec<u8>>>
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.
fn invalidate( &self, key: &[u8], value: &[u8], control: &StorageReadControl, ) -> VersionResult<Option<BudgetedVec<u8>>>
Sourcefn is_published(
&self,
view: &MergedRecordSnapshot,
key: &[u8],
value: &[u8],
graph: &str,
definition: &str,
control: &StorageReadControl,
) -> VersionResult<bool>
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.
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".