Skip to main content

CatalogObjectAllocator

Trait CatalogObjectAllocator 

Source
pub trait CatalogObjectAllocator {
    // Required methods
    fn allocate_object_id(
        &mut self,
        kind: &str,
    ) -> ConstraintMetadataResult<[u8; 16]>;
    fn allocate_catalog_oid(
        &mut self,
        class: CatalogOidClass,
        object_id: &[u8; 16],
    ) -> ConstraintMetadataResult<i64>;

    // Provided method
    fn include_catalog_identity(
        &mut self,
        _relation: &RelationIdentity,
        _class: CatalogOidClass,
        _identity: ConstraintCatalogIdentity,
    ) -> ConstraintMetadataResult<()> { ... }
}
Expand description

Declaration normalization requests identities from its caller. Execution reserves public addresses; isolated declarations and initial migration can derive candidates before validating the complete catalog.

Required Methods§

Source

fn allocate_object_id( &mut self, kind: &str, ) -> ConstraintMetadataResult<[u8; 16]>

Source

fn allocate_catalog_oid( &mut self, class: CatalogOidClass, object_id: &[u8; 16], ) -> ConstraintMetadataResult<i64>

Provided Methods§

Source

fn include_catalog_identity( &mut self, _relation: &RelationIdentity, _class: CatalogOidClass, _identity: ConstraintCatalogIdentity, ) -> ConstraintMetadataResult<()>

Validate the owning relation and reserve supplied addresses before allocating another row.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§