use std::str::FromStr;
#[derive(Debug, Default, Clone)]
#[allow(dead_code)]
pub struct SongInfo {
pub artist: String,
pub album: String,
pub title: String,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum PackageShorthand {
Off,
On,
Tiny,
}
impl FromStr for PackageShorthand {
type Err = ();
fn from_str(s: &str) -> Result<Self, ()> {
match s.to_lowercase().as_str() {
"off" => Ok(PackageShorthand::Off),
"on" => Ok(PackageShorthand::On),
"tiny" => Ok(PackageShorthand::Tiny),
_ => Ok(PackageShorthand::On),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum DistroDisplay {
Name,
NameVersion,
NameArch,
NameModel,
NameModelVersion,
NameModelArch,
NameModelVersionArch,
}
impl std::str::FromStr for DistroDisplay {
type Err = ();
fn from_str(s: &str) -> Result<Self, ()> {
match s.to_lowercase().as_str() {
"name" => Ok(DistroDisplay::Name),
"name_version" => Ok(DistroDisplay::NameVersion),
"name_arch" => Ok(DistroDisplay::NameArch),
"name_model" => Ok(DistroDisplay::NameModel),
"name_model_version" => Ok(DistroDisplay::NameModelVersion),
"name_model_arch" => Ok(DistroDisplay::NameModelArch),
"name_model_version_arch" => Ok(DistroDisplay::NameModelVersionArch),
_ => Err(()),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum UptimeShorthand {
Full,
Tiny,
Seconds,
}
impl FromStr for UptimeShorthand {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"full" => Ok(UptimeShorthand::Full),
"tiny" => Ok(UptimeShorthand::Tiny),
"seconds" => Ok(UptimeShorthand::Seconds),
_ => Ok(UptimeShorthand::Full),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum OsAgeShorthand {
Full,
Tiny,
Seconds,
}
impl FromStr for OsAgeShorthand {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"full" => Ok(Self::Full),
"tiny" => Ok(Self::Tiny),
"seconds" => Ok(Self::Seconds),
_ => Ok(Self::Full),
}
}
}
#[derive(Debug, Clone, Copy)]
pub enum MemoryUnit {
MiB,
GiB,
KiB,
}
impl FromStr for MemoryUnit {
type Err = ();
fn from_str(s: &str) -> Result<Self, ()> {
match s.to_lowercase().as_str() {
"mib" => Ok(MemoryUnit::MiB),
"gib" => Ok(MemoryUnit::GiB),
"kib" => Ok(MemoryUnit::KiB),
_ => Ok(MemoryUnit::MiB),
}
}
}
#[derive(Debug, Clone, Copy)]
pub enum DiskSubtitle {
Name,
Dir,
None,
Mount,
}
impl FromStr for DiskSubtitle {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"name" => Ok(DiskSubtitle::Name),
"dir" => Ok(DiskSubtitle::Dir),
"none" => Ok(DiskSubtitle::None),
"mount" => Ok(DiskSubtitle::Mount),
_ => Ok(DiskSubtitle::Dir),
}
}
}
pub enum DiskDisplay {
Info,
Percentage,
InfoBar,
BarInfo,
Bar,
}
impl FromStr for DiskDisplay {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.to_lowercase().as_str() {
"info" => Ok(DiskDisplay::Info),
"percentage" => Ok(DiskDisplay::Percentage),
"infobar" => Ok(DiskDisplay::InfoBar),
"barinfo" => Ok(DiskDisplay::BarInfo),
"bar" => Ok(DiskDisplay::Bar),
_ => Ok(DiskDisplay::InfoBar),
}
}
}
#[derive(Debug, Clone, Copy)]
pub enum BatteryDisplayMode {
Off,
Bar,
InfoBar,
BarInfo,
}
impl FromStr for BatteryDisplayMode {
type Err = ();
fn from_str(s: &str) -> Result<Self, ()> {
match s.to_lowercase().as_str() {
"off" => Ok(BatteryDisplayMode::Off),
"bar" => Ok(BatteryDisplayMode::Bar),
"infobar" => Ok(BatteryDisplayMode::InfoBar),
"barinfo" => Ok(BatteryDisplayMode::BarInfo),
_ => Ok(BatteryDisplayMode::BarInfo),
}
}
}