AdminEnt

Trait AdminEnt 

Source
pub trait AdminEnt: Transactional {
    // Required methods
    fn find_edges_by_dest(&self, dest: Id) -> Result<Vec<Edge>, DatabaseError>;
    fn remove_edges_by_dest(&self, dest: Id) -> Result<(), DatabaseError>;
    fn create_dyn(&self, ent: Box<dyn Ent>) -> Result<Id, DatabaseError>;
    fn update_dyn(&self, ent: Box<dyn Ent>) -> Result<(), DatabaseError>;
    fn list_entities(
        &self,
        entity_type: &str,
        cursor: Option<Id>,
        limit: usize,
    ) -> Result<Vec<Box<dyn Ent>>, DatabaseError>;

    // Provided methods
    fn audit_ent_edges<E: Ent>(&self, id: Id) -> Result<(), AuditError>
       where Self: Sized { ... }
    fn fix_ent_edges<E: Ent>(self, id: Id) -> Result<(), AuditError>
       where Self: Sized { ... }
}

Required Methods§

Source

fn find_edges_by_dest(&self, dest: Id) -> Result<Vec<Edge>, DatabaseError>

Source

fn remove_edges_by_dest(&self, dest: Id) -> Result<(), DatabaseError>

Source

fn create_dyn(&self, ent: Box<dyn Ent>) -> Result<Id, DatabaseError>

Create an entity from a boxed dynamic Ent.

This is used by the admin API to create entities without knowing their concrete type at compile time.

Source

fn update_dyn(&self, ent: Box<dyn Ent>) -> Result<(), DatabaseError>

Update an entity from a boxed dynamic Ent.

The entity’s ID should already be set. This method replaces the existing entity data with the provided entity.

Source

fn list_entities( &self, entity_type: &str, cursor: Option<Id>, limit: usize, ) -> Result<Vec<Box<dyn Ent>>, DatabaseError>

List entities of a specific type with cursor-based pagination.

§Arguments
  • entity_type - The string name of the entity type to list
  • cursor - Optional ID cursor. If provided, returns entities with ID > cursor
  • limit - Maximum number of entities to return

Provided Methods§

Source

fn audit_ent_edges<E: Ent>(&self, id: Id) -> Result<(), AuditError>
where Self: Sized,

Source

fn fix_ent_edges<E: Ent>(self, id: Id) -> Result<(), AuditError>
where Self: Sized,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§