pub trait ContextTemplateStorage: Send + Sync {
// Required methods
fn save(&self, template: &ContextTemplate) -> Result<(String, u32)>;
fn get(
&self,
name: &str,
version: Option<u32>,
) -> Result<Option<ContextTemplate>>;
fn list(
&self,
tags: Option<&[String]>,
name_pattern: Option<&str>,
) -> Result<Vec<ContextTemplate>>;
fn delete(&self, name: &str, version: Option<u32>) -> Result<bool>;
fn get_versions(&self, name: &str) -> Result<Vec<u32>>;
fn get_latest_version(&self, name: &str) -> Result<Option<u32>>;
}Expand description
Trait for context template storage backends.
Each domain scope (project, user, org) can have its own storage backend. Unlike prompt storage, context templates support versioning with auto-increment.
Required Methods§
Sourcefn save(&self, template: &ContextTemplate) -> Result<(String, u32)>
fn save(&self, template: &ContextTemplate) -> Result<(String, u32)>
Saves a context template, auto-incrementing the version.
If a template with the same name exists, creates a new version. If this is a new template, creates version 1.
§Arguments
template- The context template to save
§Returns
A tuple of (name, version) for the saved template.
§Errors
Returns an error if the template cannot be saved.
Sourcefn list(
&self,
tags: Option<&[String]>,
name_pattern: Option<&str>,
) -> Result<Vec<ContextTemplate>>
fn list( &self, tags: Option<&[String]>, name_pattern: Option<&str>, ) -> Result<Vec<ContextTemplate>>
Lists all context templates, optionally filtered.
Returns only the latest version of each template.
§Arguments
tags- Optional tags to filter by (AND logic)name_pattern- Optional glob pattern for name matching
§Returns
List of matching context templates (latest versions only).
§Errors
Returns an error if the storage cannot be accessed.