Template

Trait Template 

Source
pub trait Template {
    // Required methods
    fn template_type(&self) -> TemplateType;
    fn env_var_name(&self) -> &'static str;
    fn create_settings(
        &self,
        api_key: &str,
        scope: &SnapshotScope,
    ) -> ClaudeSettings;
    fn display_name(&self) -> &'static str;
    fn description(&self) -> &'static str;

    // Provided methods
    fn api_key_url(&self) -> Option<&'static str> { ... }
    fn requires_additional_config(&self) -> bool { ... }
    fn get_additional_config(&self) -> Result<HashMap<String, String>> { ... }
    fn has_variants(&self) -> bool { ... }
    fn get_variants() -> Result<Vec<Self>>
       where Self: Sized { ... }
    fn create_interactively() -> Result<Self>
       where Self: Sized { ... }
}
Expand description

Trait that all AI provider templates must implement

Required Methods§

Source

fn template_type(&self) -> TemplateType

Get the template type identifier

Source

fn env_var_name(&self) -> &'static str

Get the environment variable name for the API key

Source

fn create_settings( &self, api_key: &str, scope: &SnapshotScope, ) -> ClaudeSettings

Create Claude settings for this template

Source

fn display_name(&self) -> &'static str

Get display name for the template

Source

fn description(&self) -> &'static str

Get description for the template

Provided Methods§

Source

fn api_key_url(&self) -> Option<&'static str>

Get API key acquisition URL (if available)

Source

fn requires_additional_config(&self) -> bool

Check if this template requires additional configuration (like endpoint ID)

Source

fn get_additional_config(&self) -> Result<HashMap<String, String>>

Get additional configuration if needed

Source

fn has_variants(&self) -> bool

Check if this template has sub-variants (like Pro/Air versions)

Source

fn get_variants() -> Result<Vec<Self>>
where Self: Sized,

Get available variants if this template supports them

Source

fn create_interactively() -> Result<Self>
where Self: Sized,

Create a template instance interactively (for templates with variants)

Implementors§