summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Knaack <davidkna@users.noreply.github.com>2021-03-15 11:40:52 +0100
committerGitHub <noreply@github.com>2021-03-15 11:40:52 +0100
commit052b56fe10494c37afd058548c5dc7e2f359e08c (patch)
tree041d9cb554a79bfe8a997d75f13a75a0ba51801e
parent6fd7d7b5010c28d0557e4ff562187098abaa3bc6 (diff)
refactor: replace RootModuleConfig with Default (#2458)
-rw-r--r--src/config.rs13
-rw-r--r--src/configs/aws.rs6
-rw-r--r--src/configs/battery.rs6
-rw-r--r--src/configs/character.rs6
-rw-r--r--src/configs/cmake.rs6
-rw-r--r--src/configs/cmd_duration.rs6
-rw-r--r--src/configs/conda.rs6
-rw-r--r--src/configs/crystal.rs6
-rw-r--r--src/configs/custom.rs6
-rw-r--r--src/configs/dart.rs6
-rw-r--r--src/configs/directory.rs6
-rw-r--r--src/configs/docker_context.rs6
-rw-r--r--src/configs/dotnet.rs6
-rw-r--r--src/configs/elixir.rs6
-rw-r--r--src/configs/elm.rs6
-rw-r--r--src/configs/env_var.rs6
-rw-r--r--src/configs/erlang.rs6
-rw-r--r--src/configs/gcloud.rs6
-rw-r--r--src/configs/git_branch.rs6
-rw-r--r--src/configs/git_commit.rs6
-rw-r--r--src/configs/git_state.rs6
-rw-r--r--src/configs/git_status.rs6
-rw-r--r--src/configs/go.rs6
-rw-r--r--src/configs/helm.rs6
-rw-r--r--src/configs/hg_branch.rs6
-rw-r--r--src/configs/hostname.rs6
-rw-r--r--src/configs/java.rs6
-rw-r--r--src/configs/jobs.rs6
-rw-r--r--src/configs/julia.rs6
-rw-r--r--src/configs/kotlin.rs6
-rw-r--r--src/configs/kubernetes.rs6
-rw-r--r--src/configs/lua.rs6
-rw-r--r--src/configs/memory_usage.rs6
-rw-r--r--src/configs/nim.rs6
-rw-r--r--src/configs/nix_shell.rs6
-rw-r--r--src/configs/nodejs.rs6
-rw-r--r--src/configs/ocaml.rs6
-rw-r--r--src/configs/openstack.rs6
-rw-r--r--src/configs/package.rs6
-rw-r--r--src/configs/perl.rs6
-rw-r--r--src/configs/php.rs6
-rw-r--r--src/configs/purescript.rs6
-rw-r--r--src/configs/python.rs6
-rw-r--r--src/configs/ruby.rs6
-rw-r--r--src/configs/rust.rs6
-rw-r--r--src/configs/scala.rs6
-rw-r--r--src/configs/shell.rs6
-rw-r--r--src/configs/shlvl.rs6
-rw-r--r--src/configs/singularity.rs6
-rw-r--r--src/configs/starship_root.rs6
-rw-r--r--src/configs/status.rs6
-rw-r--r--src/configs/swift.rs6
-rw-r--r--src/configs/terraform.rs6
-rw-r--r--src/configs/time.rs6
-rw-r--r--src/configs/username.rs6
-rw-r--r--src/configs/vagrant.rs6
-rw-r--r--src/configs/zig.rs6
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
+++ b/src/configs/hg_branch.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 HgBranchConfig<'a> {
pub disabled: bool,
}
-impl<'a> RootModuleConfig<'a> for HgBranchConfig<'a> {
- fn new() -> Self {
+impl<'a> Default for HgBranchConfig<'a> {
+ fn default() -> Self {
HgBranchConfig {
symbol: " ",
style: "bold purple",
diff --git a/src/configs/hostname.rs b/src/configs/hostname.rs
index ff57a6961..f1e91bea0 100644
--- a/src/configs/hostname.rs
+++ b/src/configs/hostname.rs
@@ -1,4 +1,4 @@</