repo_description: ☄🌌️  The minimal, blazing-fast, and infinitely customizable prompt for any shell!
repo_topics: bash fish fish-prompt fish-theme oh-my-zsh powershell rust shell-prompt starship zsh zsh-prompt zsh-theme
code: use serde::{Deserialize, Serialize};
  
  #[derive(Clone, Deserialize, Serialize)]
  #[cfg_attr(
      feature = "config-schema",
      derive(schemars::JsonSchema),
      schemars(deny_unknown_fields)
  )]
  #[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,
  }
  
  impl Default for BatteryConfig<'_> {
      fn default() -> Self {
          Self {
              full_symbol: "󰁹 ",
              charging_symbol: "󰂄 ",
              discharging_symbol: "󰂃 ",
              unknown_symbol: "󰂑 ",
              empty_symbol: "󰂎 ",
              format: "[$symbol$percentage]($style) ",
              display: vec![BatteryDisplayConfig::default()],
              disabled: false,
          }
      }
  }
  
  #[derive(Clone, Deserialize, Serialize)]
  #[cfg_attr(
      feature = "config-schema",
      derive(schemars::JsonSchema),
      schemars(deny_unknown_fields)
  )]
  #[serde(default)]
  pub struct BatteryDisplayConfig<'a> {
      pub threshold: i64,
      pub style: &'a str,
      pub charging_symbol: Option<&'a str>,
      pub discharging_symbol: Option<&'a str>,
  }
  
  impl Default for BatteryDisplayConfig<'_> {
      fn default() -> Self {
          Self {
              threshold: 10,
              style: "red bold",
              charging_symbol: None,
              discharging_symbol: None,
          }
      }
  }
  