pub struct Config {
pub default_provider: String,
pub providers: HashMap<String, ProviderConfig>,
pub use_gitmoji: bool,
pub instructions: String,
pub instruction_preset: String,
pub temp_instructions: Option<String>,
pub temp_preset: Option<String>,
pub is_project_config: bool,
}
Expand description
Configuration structure for the Git-Iris application
Fields§
§default_provider: String
Default LLM provider
providers: HashMap<String, ProviderConfig>
Provider-specific configurations
use_gitmoji: bool
Flag indicating whether to use Gitmoji
instructions: String
Instructions for commit messages
instruction_preset: String
§temp_instructions: Option<String>
§temp_preset: Option<String>
§is_project_config: bool
Flag indicating if this config is from a project file
Implementations§
Source§impl Config
impl Config
Sourcepub fn load_project_config() -> Result<Self, Error>
pub fn load_project_config() -> Result<Self, Error>
Load project-specific configuration
Sourcepub fn get_project_config_path() -> Result<PathBuf, Error>
pub fn get_project_config_path() -> Result<PathBuf, Error>
Get the path to the project configuration file
Sourcepub fn merge_with_project_config(&mut self, project_config: Self)
pub fn merge_with_project_config(&mut self, project_config: Self)
Merge this config with project-specific config, with project config taking precedence But never allow API keys from project config
Sourcepub fn save_as_project_config(&self) -> Result<(), Error>
pub fn save_as_project_config(&self) -> Result<(), Error>
Save the configuration as a project-specific configuration
Sourcepub fn check_environment(&self) -> Result<()>
pub fn check_environment(&self) -> Result<()>
Check the environment for necessary prerequisites
pub fn set_temp_instructions(&mut self, instructions: Option<String>)
pub fn set_temp_preset(&mut self, preset: Option<String>)
pub fn get_effective_instructions(&self) -> String
Sourcepub fn update(
&mut self,
provider: Option<String>,
api_key: Option<String>,
model: Option<String>,
additional_params: Option<HashMap<String, String>>,
use_gitmoji: Option<bool>,
instructions: Option<String>,
token_limit: Option<usize>,
) -> Result<()>
pub fn update( &mut self, provider: Option<String>, api_key: Option<String>, model: Option<String>, additional_params: Option<HashMap<String, String>>, use_gitmoji: Option<bool>, instructions: Option<String>, token_limit: Option<usize>, ) -> Result<()>
Update the configuration with new values
Sourcepub fn get_provider_config(&self, provider: &str) -> Option<&ProviderConfig>
pub fn get_provider_config(&self, provider: &str) -> Option<&ProviderConfig>
Get the configuration for a specific provider
Sourcepub fn set_project_config(&mut self, is_project: bool)
pub fn set_project_config(&mut self, is_project: bool)
Set whether this config is a project config
Sourcepub fn is_project_config(&self) -> bool
pub fn is_project_config(&self) -> bool
Check if this is a project config
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more