summaryrefslogtreecommitdiffstats
path: root/src/configs
diff options
context:
space:
mode:
authorDavid Knaack <davidkna@users.noreply.github.com>2022-03-26 10:42:19 +0100
committerGitHub <noreply@github.com>2022-03-26 10:42:19 +0100
commit2d4b183fce8c9de0d9548f7087786bc919cae7b4 (patch)
tree924114efeef59bfe80a0b9f5fec4fdb7acf2800b /src/configs
parent0fb421969058ec07a09f7c927dddc1258de75631 (diff)
refactor: replace module_config_derive with serde (#3786)
* refactor: replace module_config_derive with serde Changes include: * Removing `starship_module_config_derive` and replacing it with `serde::Deserialize` * Removing `RootModuleConfig::load_config`. While potentially useful, it was only used in tests. And it would require something like `serde::DeserializeSeed` which is not derived by serde. * Merging `RootModuleConfig` into `ModuleConfig` * Implementing a `ValueDeserializer` that holds a reference to a `toml::Value` in `serde_utils.rs` * Deserialization errors (invalid type) are now logged and include the current key and the struct names * Unknown keys are now considered an error. "Did you mean?"-messages are still possible * fix typo Co-authored-by: Matan Kushner <hello@matchai.dev> Co-authored-by: Matan Kushner <hello@matchai.dev>
Diffstat (limited to 'src/configs')
-rw-r--r--src/configs/aws.rs7
-rw-r--r--src/configs/azure.rs7
-rw-r--r--src/configs/battery.rs12
-rw-r--r--src/configs/buf.rs8
-rw-r--r--src/configs/c.rs8
-rw-r--r--src/configs/character.rs8
-rw-r--r--src/configs/cmake.rs8
-rw-r--r--src/configs/cmd_duration.rs8
-rw-r--r--src/configs/cobol.rs8
-rw-r--r--src/configs/conda.rs8
-rw-r--r--src/configs/container.rs8
-rw-r--r--src/configs/crystal.rs8
-rw-r--r--src/configs/custom.rs8
-rw-r--r--src/configs/dart.rs8
-rw-r--r--src/configs/deno.rs8
-rw-r--r--src/configs/directory.rs7
-rw-r--r--src/configs/docker_context.rs8
-rw-r--r--src/configs/dotnet.rs8
-rw-r--r--src/configs/elixir.rs8
-rw-r--r--src/configs/elm.rs8
-rw-r--r--src/configs/env_var.rs8
-rw-r--r--src/configs/erlang.rs8
-rw-r--r--src/configs/fill.rs8
-rw-r--r--src/configs/gcloud.rs7
-rw-r--r--src/configs/git_branch.rs8
-rw-r--r--src/configs/git_commit.rs8
-rw-r--r--src/configs/git_metrics.rs8
-rw-r--r--src/configs/git_state.rs8
-rw-r--r--src/configs/git_status.rs8
-rw-r--r--src/configs/go.rs8
-rw-r--r--src/configs/haskell.rs8
-rw-r--r--src/configs/helm.rs8
-rw-r--r--src/configs/hg_branch.rs8
-rw-r--r--src/configs/hostname.rs8
-rw-r--r--src/configs/java.rs8
-rw-r--r--src/configs/jobs.rs8
-rw-r--r--src/configs/julia.rs8
-rw-r--r--src/configs/kotlin.rs8
-rw-r--r--src/configs/kubernetes.rs8
-rw-r--r--src/configs/line_break.rs7
-rw-r--r--src/configs/localip.rs8
-rw-r--r--src/configs/lua.rs8
-rw-r--r--src/configs/memory_usage.rs8
-rw-r--r--src/configs/mod.rs184
-rw-r--r--src/configs/nim.rs8
-rw-r--r--src/configs/nix_shell.rs8
-rw-r--r--src/configs/nodejs.rs8
-rw-r--r--src/configs/ocaml.rs8
-rw-r--r--src/configs/openstack.rs7
-rw-r--r--src/configs/package.rs8
-rw-r--r--src/configs/perl.rs8
-rw-r--r--src/configs/php.rs8
-rw-r--r--src/configs/pulumi.rs8
-rw-r--r--src/configs/purescript.rs8
-rw-r--r--src/configs/python.rs8
-rw-r--r--src/configs/red.rs8
-rw-r--r--src/configs/rlang.rs8
-rw-r--r--src/configs/ruby.rs8
-rw-r--r--src/configs/rust.rs8
-rw-r--r--src/configs/scala.rs8
-rw-r--r--src/configs/shell.rs8
-rw-r--r--src/configs/shlvl.rs8
-rw-r--r--src/configs/singularity.rs8
-rw-r--r--src/configs/starship_root.rs66
-rw-r--r--src/configs/status.rs8
-rw-r--r--src/configs/sudo.rs8
-rw-r--r--src/configs/swift.rs8
-rw-r--r--src/configs/terraform.rs8
-rw-r--r--src/configs/time.rs8
-rw-r--r--src/configs/username.rs8
-rw-r--r--src/configs/v.rs8
-rw-r--r--src/configs/vagrant.rs8
-rw-r--r--src/configs/vcsh.rs8
-rw-r--r--src/configs/zig.rs8
74 files changed, 298 insertions, 526 deletions
diff --git a/src/configs/aws.rs b/src/configs/aws.rs
index 69092abb6..5e492d394 100644
--- a/src/configs/aws.rs
+++ b/src/configs/aws.rs
@@ -1,9 +1,8 @@
-use crate::config::ModuleConfig;
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
+use serde::{Deserialize, Serialize};
use std::collections::HashMap;
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct AwsConfig<'a> {
pub format: &'a str,
pub symbol: &'a str,
diff --git a/src/configs/azure.rs b/src/configs/azure.rs
index c22fad981..bc4fadde2 100644
--- a/src/configs/azure.rs
+++ b/src/configs/azure.rs
@@ -1,8 +1,7 @@
-use crate::config::ModuleConfig;
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
+use serde::{Deserialize, Serialize};
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct AzureConfig<'a> {
pub format: &'a str,
pub symbol: &'a str,
diff --git a/src/configs/battery.rs b/src/configs/battery.rs
index 817c2afe7..9058aadb9 100644
--- a/src/configs/battery.rs
+++ b/src/configs/battery.rs
@@ -1,15 +1,14 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct BatteryConfig<'a> {
pub full_symbol: &'a str,
pub charging_symbol: &'a str,
pub discharging_symbol: &'a str,
pub unknown_symbol: &'a str,
pub empty_symbol: &'a str,
+ #[serde(borrow)]
pub display: Vec<BatteryDisplayConfig<'a>>,
pub disabled: bool,
pub format: &'a str,
@@ -30,7 +29,8 @@ impl<'a> Default for BatteryConfig<'a> {
}
}
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct BatteryDisplayConfig<'a> {
pub threshold: i64,
pub style: &'a str,
diff --git a/src/configs/buf.rs b/src/configs/buf.rs
index f4fd0a18f..531ce4dfc 100644
--- a/src/configs/buf.rs
+++ b/src/configs/buf.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct BufConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/c.rs b/src/configs/c.rs
index 14a230ff9..fda0a17ab 100644
--- a/src/configs/c.rs
+++ b/src/configs/c.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/character.rs b/src/configs/character.rs
index 19204fe3c..91bba8c23 100644
--- a/src/configs/character.rs
+++ b/src/configs/character.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CharacterConfig<'a> {
pub format: &'a str,
pub success_symbol: &'a str,
diff --git a/src/configs/cmake.rs b/src/configs/cmake.rs
index 8ba2c6a94..51140c8f3 100644
--- a/src/configs/cmake.rs
+++ b/src/configs/cmake.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CMakeConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/cmd_duration.rs b/src/configs/cmd_duration.rs
index 44c0c6994..ace907305 100644
--- a/src/configs/cmd_duration.rs
+++ b/src/configs/cmd_duration.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CmdDurationConfig<'a> {
pub min_time: i64,
pub format: &'a str,
diff --git a/src/configs/cobol.rs b/src/configs/cobol.rs
index b56123987..da41b96f3 100644
--- a/src/configs/cobol.rs
+++ b/src/configs/cobol.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CobolConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/conda.rs b/src/configs/conda.rs
index 623b4fc67..df88312d1 100644
--- a/src/configs/conda.rs
+++ b/src/configs/conda.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CondaConfig<'a> {
pub truncation_length: usize,
pub format: &'a str,
diff --git a/src/configs/container.rs b/src/configs/container.rs
index 107fdd28f..dd777b48a 100644
--- a/src/configs/container.rs
+++ b/src/configs/container.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct ContainerConfig<'a> {
pub format: &'a str,
pub symbol: &'a str,
diff --git a/src/configs/crystal.rs b/src/configs/crystal.rs
index ec90b773e..7c7ece703 100644
--- a/src/configs/crystal.rs
+++ b/src/configs/crystal.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CrystalConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/custom.rs b/src/configs/custom.rs
index d1f758aa4..a38d60a75 100644
--- a/src/configs/custom.rs
+++ b/src/configs/custom.rs
@@ -1,9 +1,9 @@
-use crate::config::{ModuleConfig, VecOr};
+use crate::config::VecOr;
-use serde::{self, Serialize};
-use starship_module_config_derive::ModuleConfig;
+use serde::{self, Deserialize, Serialize};
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct CustomConfig<'a> {
pub format: &'a str,
pub symbol: &'a str,
diff --git a/src/configs/dart.rs b/src/configs/dart.rs
index 8edb214bd..cc235d488 100644
--- a/src/configs/dart.rs
+++ b/src/configs/dart.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct DartConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/deno.rs b/src/configs/deno.rs
index c7b3e45b4..f3f955ec3 100644
--- a/src/configs/deno.rs
+++ b/src/configs/deno.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct DenoConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/directory.rs b/src/configs/directory.rs
index 0d1d9217e..89c98518a 100644
--- a/src/configs/directory.rs
+++ b/src/configs/directory.rs
@@ -1,10 +1,9 @@
-use crate::config::ModuleConfig;
use indexmap::IndexMap;
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
+use serde::{Deserialize, Serialize};
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct DirectoryConfig<'a> {
pub truncation_length: i64,
pub truncate_to_repo: bool,
diff --git a/src/configs/docker_context.rs b/src/configs/docker_context.rs
index b026acda9..73603ac34 100644
--- a/src/configs/docker_context.rs
+++ b/src/configs/docker_context.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct DockerContextConfig<'a> {
pub symbol: &'a str,
pub style: &'a str,
diff --git a/src/configs/dotnet.rs b/src/configs/dotnet.rs
index 0d29e178e..da2137655 100644
--- a/src/configs/dotnet.rs
+++ b/src/configs/dotnet.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct DotnetConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/elixir.rs b/src/configs/elixir.rs
index d4ed7161e..fac7983c2 100644
--- a/src/configs/elixir.rs
+++ b/src/configs/elixir.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct ElixirConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/elm.rs b/src/configs/elm.rs
index 34d6b6260..1b5357d43 100644
--- a/src/configs/elm.rs
+++ b/src/configs/elm.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct ElmConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/env_var.rs b/src/configs/env_var.rs
index 30ab72e95..0b5c663b7 100644
--- a/src/configs/env_var.rs
+++ b/src/configs/env_var.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct EnvVarConfig<'a> {
pub symbol: &'a str,
pub style: &'a str,
diff --git a/src/configs/erlang.rs b/src/configs/erlang.rs
index 8ab6f0764..06888b88a 100644
--- a/src/configs/erlang.rs
+++ b/src/configs/erlang.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct ErlangConfig<'a> {
pub format: &'a str,
pub version_format: &'a str,
diff --git a/src/configs/fill.rs b/src/configs/fill.rs
index fc0af31fa..63cd4424c 100644
--- a/src/configs/fill.rs
+++ b/src/configs/fill.rs
@@ -1,9 +1,7 @@
-use crate::config::ModuleConfig;
+use serde::{Deserialize, Serialize};
-use serde::Serialize;
-use starship_module_config_derive::ModuleConfig;
-
-#[derive(Clone, ModuleConfig, Serialize)]
+#[derive(Clone, Deserialize, Serialize)]
+#[serde(default)]
pub struct FillConfig<'a> {
pub style: &'a str,
pub symbol: &'a str,
diff --git a/src/configs/gcloud.rs b/src/configs/gcloud.rs
index 853cd0148..e298a0446 100644
--- a/src/configs/gcloud.rs
+++ b/src/configs/gcloud.rs<