Skip to main content

Persistence

Trait Persistence 

Source
pub trait Persistence:
    Send
    + Sync
    + Debug {
    // Required methods
    fn save(&self, plugin: &DeclaredPlugin) -> Result<(), PersistenceError>;
    fn delete(&self, qname: &str) -> Result<(), PersistenceError>;
    fn load_all(&self) -> Result<Vec<DeclaredPlugin>, PersistenceError>;
}
Expand description

A persistence backend for declared-plugin records.

Implementations must be Send + Sync because the crate::CustomPlugin holds an Arc<dyn Persistence> shared across procedure invocations on every session thread.

Required Methods§

Source

fn save(&self, plugin: &DeclaredPlugin) -> Result<(), PersistenceError>

Persist a freshly-declared plugin record.

§Errors

Returns PersistenceError on I/O or serialization failure.

Source

fn delete(&self, qname: &str) -> Result<(), PersistenceError>

Remove a previously persisted record by qname.

§Errors

Returns PersistenceError on I/O or serialization failure.

Source

fn load_all(&self) -> Result<Vec<DeclaredPlugin>, PersistenceError>

Replay every persisted declaration (in any order — callers must topologically sort if dependency ordering matters).

§Errors

Returns PersistenceError on I/O or deserialization failure.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§