diff options
author | David Knaack <davidkna@users.noreply.github.com> | 2021-03-15 11:40:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-15 11:40:52 +0100 |
commit | 052b56fe10494c37afd058548c5dc7e2f359e08c (patch) | |
tree | 041d9cb554a79bfe8a997d75f13a75a0ba51801e /src | |
parent | 6fd7d7b5010c28d0557e4ff562187098abaa3bc6 (diff) |
refactor: replace RootModuleConfig with Default (#2458)
Diffstat (limited to 'src')
57 files changed, 174 insertions, 175 deletions
diff --git a/src/config.rs b/src/config.rs index 211d93632..3b2651e25 100644 --- a/src/config.rs +++ b/src/config.rs @@ -14,18 +14,15 @@ use toml::Value; /// Root config of a module. pub trait RootModuleConfig<'a> where - Self: ModuleConfig<'a>, + Self: ModuleConfig<'a> + Default, { - /// Create a new root module config with default values. - fn new() -> Self; - /// Load root module config from given Value and fill unset variables with default /// values. fn load(config: &'a Value) -> Self { if config.get("prompt_order").is_some() { log::warn!("\"prompt_order\" has been removed in favor of \"format\". For more details, see: https://starship.rs/migrating-to-0.45.0/") } - Self::new().load_config(config) + Self::default().load_config(config) } /// Helper function that will call RootModuleConfig::load(config) if config is Some, @@ -34,11 +31,13 @@ where if let Some(config) = config { Self::load(config) } else { - Self::new() + Self::default() } } } +impl<'a, T: ModuleConfig<'a> + Default> RootModuleConfig<'a> for T {} + /// Parsable config. pub trait ModuleConfig<'a> where @@ -346,7 +345,7 @@ impl StarshipConfig { if let Some(root_config) = &self.config { StarshipRootConfig::load(root_config) } else { - StarshipRootConfig::new() + StarshipRootConfig::default() } } } diff --git a/src/configs/aws.rs b/src/configs/aws.rs index 2a033937d..adc3868e8 100644 --- a/src/configs/aws.rs +++ b/src/configs/aws.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; use std::collections::HashMap; @@ -11,8 +11,8 @@ pub struct AwsConfig<'a> { pub region_aliases: HashMap<String, &'a str>, } -impl<'a> RootModuleConfig<'a> for AwsConfig<'a> { - fn new() -> Self { +impl<'a> Default for AwsConfig<'a> { + fn default() -> Self { AwsConfig { format: "on [$symbol($profile )(\\($region\\) )]($style)", symbol: "☁️ ", diff --git a/src/configs/battery.rs b/src/configs/battery.rs index 4349a25ce..578fc040b 100644 --- a/src/configs/battery.rs +++ b/src/configs/battery.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -14,8 +14,8 @@ pub struct BatteryConfig<'a> { pub format: &'a str, } -impl<'a> RootModuleConfig<'a> for BatteryConfig<'a> { - fn new() -> Self { +impl<'a> Default for BatteryConfig<'a> { + fn default() -> Self { BatteryConfig { full_symbol: "", charging_symbol: "", diff --git a/src/configs/character.rs b/src/configs/character.rs index 7486890e7..3e7153370 100644 --- a/src/configs/character.rs +++ b/src/configs/character.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -11,8 +11,8 @@ pub struct CharacterConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for CharacterConfig<'a> { - fn new() -> Self { +impl<'a> Default for CharacterConfig<'a> { + fn default() -> Self { CharacterConfig { format: "$symbol ", success_symbol: "[❯](bold green)", diff --git a/src/configs/cmake.rs b/src/configs/cmake.rs index 012d8ebda..8b9f51c85 100644 --- a/src/configs/cmake.rs +++ b/src/configs/cmake.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct CMakeConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for CMakeConfig<'a> { - fn new() -> Self { +impl<'a> Default for CMakeConfig<'a> { + fn default() -> Self { CMakeConfig { format: "via [$symbol($version )]($style)", symbol: "△ ", diff --git a/src/configs/cmd_duration.rs b/src/configs/cmd_duration.rs index 7609e9cfa..096fbf8e1 100644 --- a/src/configs/cmd_duration.rs +++ b/src/configs/cmd_duration.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct CmdDurationConfig<'a> { pub min_time_to_notify: i64, } -impl<'a> RootModuleConfig<'a> for CmdDurationConfig<'a> { - fn new() -> Self { +impl<'a> Default for CmdDurationConfig<'a> { + fn default() -> Self { CmdDurationConfig { min_time: 2_000, format: "took [$duration]($style) ", diff --git a/src/configs/conda.rs b/src/configs/conda.rs index 0680380c3..54e9434ef 100644 --- a/src/configs/conda.rs +++ b/src/configs/conda.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -12,8 +12,8 @@ pub struct CondaConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for CondaConfig<'a> { - fn new() -> Self { +impl<'a> Default for CondaConfig<'a> { + fn default() -> Self { CondaConfig { truncation_length: 1, format: "via [$symbol$environment]($style) ", diff --git a/src/configs/crystal.rs b/src/configs/crystal.rs index d135b9e5e..ae3c4da75 100644 --- a/src/configs/crystal.rs +++ b/src/configs/crystal.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct CrystalConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for CrystalConfig<'a> { - fn new() -> Self { +impl<'a> Default for CrystalConfig<'a> { + fn default() -> Self { CrystalConfig { format: "via [$symbol($version )]($style)", symbol: "🔮 ", diff --git a/src/configs/custom.rs b/src/configs/custom.rs index 69e778190..df6d03de5 100644 --- a/src/configs/custom.rs +++ b/src/configs/custom.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig, VecOr}; +use crate::config::{ModuleConfig, VecOr}; use starship_module_config_derive::ModuleConfig; @@ -26,8 +26,8 @@ pub struct CustomConfig<'a> { pub directories: Directories<'a>, } -impl<'a> RootModuleConfig<'a> for CustomConfig<'a> { - fn new() -> Self { +impl<'a> Default for CustomConfig<'a> { + fn default() -> Self { CustomConfig { format: "[$symbol($output )]($style)", symbol: "", diff --git a/src/configs/dart.rs b/src/configs/dart.rs index cde1832f1..ef8e16bba 100644 --- a/src/configs/dart.rs +++ b/src/configs/dart.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct DartConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for DartConfig<'a> { - fn new() -> Self { +impl<'a> Default for DartConfig<'a> { + fn default() -> Self { DartConfig { format: "via [$symbol($version )]($style)", symbol: "🎯 ", diff --git a/src/configs/directory.rs b/src/configs/directory.rs index ef0b15aa3..47fa8bdcf 100644 --- a/src/configs/directory.rs +++ b/src/configs/directory.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use indexmap::IndexMap; use starship_module_config_derive::ModuleConfig; @@ -19,8 +19,8 @@ pub struct DirectoryConfig<'a> { pub home_symbol: &'a str, } -impl<'a> RootModuleConfig<'a> for DirectoryConfig<'a> { - fn new() -> Self { +impl<'a> Default for DirectoryConfig<'a> { + fn default() -> Self { DirectoryConfig { truncation_length: 3, truncate_to_repo: true, diff --git a/src/configs/docker_context.rs b/src/configs/docker_context.rs index ec732b2b7..7d8757d4d 100644 --- a/src/configs/docker_context.rs +++ b/src/configs/docker_context.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -14,8 +14,8 @@ pub struct DockerContextConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for DockerContextConfig<'a> { - fn new() -> Self { +impl<'a> Default for DockerContextConfig<'a> { + fn default() -> Self { DockerContextConfig { symbol: "🐳 ", style: "blue bold", diff --git a/src/configs/dotnet.rs b/src/configs/dotnet.rs index 644d921cb..aac52fee0 100644 --- a/src/configs/dotnet.rs +++ b/src/configs/dotnet.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -14,8 +14,8 @@ pub struct DotnetConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for DotnetConfig<'a> { - fn new() -> Self { +impl<'a> Default for DotnetConfig<'a> { + fn default() -> Self { DotnetConfig { format: "[$symbol($version )(🎯 $tfm )]($style)", symbol: "•NET ", diff --git a/src/configs/elixir.rs b/src/configs/elixir.rs index 254cdc542..3fddbb979 100644 --- a/src/configs/elixir.rs +++ b/src/configs/elixir.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct ElixirConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for ElixirConfig<'a> { - fn new() -> Self { +impl<'a> Default for ElixirConfig<'a> { + fn default() -> Self { ElixirConfig { format: "via [$symbol($version \\(OTP $otp_version\\) )]($style)", symbol: "💧 ", diff --git a/src/configs/elm.rs b/src/configs/elm.rs index 801622cf4..4b582867b 100644 --- a/src/configs/elm.rs +++ b/src/configs/elm.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct ElmConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for ElmConfig<'a> { - fn new() -> Self { +impl<'a> Default for ElmConfig<'a> { + fn default() -> Self { ElmConfig { format: "via [$symbol($version )]($style)", symbol: "🌳 ", diff --git a/src/configs/env_var.rs b/src/configs/env_var.rs index 09635aaf7..07aef6090 100644 --- a/src/configs/env_var.rs +++ b/src/configs/env_var.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -12,8 +12,8 @@ pub struct EnvVarConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for EnvVarConfig<'a> { - fn new() -> Self { +impl<'a> Default for EnvVarConfig<'a> { + fn default() -> Self { EnvVarConfig { symbol: "", style: "black bold dimmed", diff --git a/src/configs/erlang.rs b/src/configs/erlang.rs index abaecf449..9e04105df 100644 --- a/src/configs/erlang.rs +++ b/src/configs/erlang.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct ErlangConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for ErlangConfig<'a> { - fn new() -> Self { +impl<'a> Default for ErlangConfig<'a> { + fn default() -> Self { ErlangConfig { format: "via [$symbol($version )]($style)", symbol: " ", diff --git a/src/configs/gcloud.rs b/src/configs/gcloud.rs index b392a98e3..d3f3c2028 100644 --- a/src/configs/gcloud.rs +++ b/src/configs/gcloud.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; use std::collections::HashMap; @@ -11,8 +11,8 @@ pub struct GcloudConfig<'a> { pub region_aliases: HashMap<String, &'a str>, } -impl<'a> RootModuleConfig<'a> for GcloudConfig<'a> { - fn new() -> Self { +impl<'a> Default for GcloudConfig<'a> { + fn default() -> Self { GcloudConfig { format: "on [$symbol$account(\\($region\\))]($style) ", symbol: "☁️ ", diff --git a/src/configs/git_branch.rs b/src/configs/git_branch.rs index 8e4bb3caf..87ab33f1a 100644 --- a/src/configs/git_branch.rs +++ b/src/configs/git_branch.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -14,8 +14,8 @@ pub struct GitBranchConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for GitBranchConfig<'a> { - fn new() -> Self { +impl<'a> Default for GitBranchConfig<'a> { + fn default() -> Self { GitBranchConfig { format: "on [$symbol$branch]($style)(:[$remote]($style)) ", symbol: " ", diff --git a/src/configs/git_commit.rs b/src/configs/git_commit.rs index 0276db3dc..d07a9d765 100644 --- a/src/configs/git_commit.rs +++ b/src/configs/git_commit.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct GitCommitConfig<'a> { pub tag_disabled: bool, } -impl<'a> RootModuleConfig<'a> for GitCommitConfig<'a> { - fn new() -> Self { +impl<'a> Default for GitCommitConfig<'a> { + fn default() -> Self { GitCommitConfig { // be consistent with git by default, which has DEFAULT_ABBREV set to 7 commit_hash_length: 7, diff --git a/src/configs/git_state.rs b/src/configs/git_state.rs index a938f5568..5bc214dd4 100644 --- a/src/configs/git_state.rs +++ b/src/configs/git_state.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -16,8 +16,8 @@ pub struct GitStateConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for GitStateConfig<'a> { - fn new() -> Self { +impl<'a> Default for GitStateConfig<'a> { + fn default() -> Self { GitStateConfig { rebase: "REBASING", merge: "MERGING", diff --git a/src/configs/git_status.rs b/src/configs/git_status.rs index 846049f5a..e2b2f8f78 100644 --- a/src/configs/git_status.rs +++ b/src/configs/git_status.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -19,8 +19,8 @@ pub struct GitStatusConfig<'a> { pub disabled: bool, } -impl<'a> RootModuleConfig<'a> for GitStatusConfig<'a> { - fn new() -> Self { +impl<'a> Default for GitStatusConfig<'a> { + fn default() -> Self { GitStatusConfig { format: "([\\[$all_status$ahead_behind\\]]($style) )", style: "red bold", diff --git a/src/configs/go.rs b/src/configs/go.rs index b3a1c2a3d..9db7f28f7 100644 --- a/src/configs/go.rs +++ b/src/configs/go.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct GoConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for GoConfig<'a> { - fn new() -> Self { +impl<'a> Default for GoConfig<'a> { + fn default() -> Self { GoConfig { format: "via [$symbol($version )]($style)", symbol: "🐹 ", diff --git a/src/configs/helm.rs b/src/configs/helm.rs index 60f31aa7b..dfa2b46be 100644 --- a/src/configs/helm.rs +++ b/src/configs/helm.rs @@ -1,4 +1,4 @@ -use crate::config::{ModuleConfig, RootModuleConfig}; +use crate::config::ModuleConfig; use starship_module_config_derive::ModuleConfig; @@ -13,8 +13,8 @@ pub struct HelmConfig<'a> { pub detect_folders: Vec<&'a str>, } -impl<'a> RootModuleConfig<'a> for HelmConfig<'a> { - fn new() -> Self { +impl<'a> Default for HelmConfig<'a> { + fn default() -> Self { HelmConfig { format: "via [$symbol($version )]($style)", symbol: "⎈ ", diff --git a/src/configs/hg_branch.rs b/src/configs/hg_branch.rs index f96b84bcc..c06f9a1d0 100644 --- a/src/configs/hg_branch.rs ++ |