Trait SnippetRepository

Source
pub trait SnippetRepository {
    // Required methods
    fn load_all(&self) -> Result<Vec<Snippet>, NibbError>;
    fn load(&self, slug: &str) -> Result<Snippet, NibbError>;
    fn save(&self, snippet: &Snippet) -> Result<(), NibbError>;
    fn save_all(&self, snippets: &[Snippet]) -> Result<(), NibbError>;
    fn delete(&self, slug: &str) -> Result<(), NibbError>;
}
Expand description

Defines the interface for a snippet repository backend.

Allows loading, saving, and deleting individual or multiple Snippets via a consistent API, independent of the concrete storage type (e.g. FS, DB, etc.).

Required Methods§

Source

fn load_all(&self) -> Result<Vec<Snippet>, NibbError>

Load all available snippets from the repository.

Source

fn load(&self, slug: &str) -> Result<Snippet, NibbError>

Load a single snippet by its slugified name.

Source

fn save(&self, snippet: &Snippet) -> Result<(), NibbError>

Save or update a single snippet.

Source

fn save_all(&self, snippets: &[Snippet]) -> Result<(), NibbError>

Save or update a batch of snippets.

Source

fn delete(&self, slug: &str) -> Result<(), NibbError>

Delete a snippet by its slug.

Implementors§