diff --git a/helix-view/src/graphics.rs b/helix-view/src/graphics.rs index c9dd21e3..acdaa696 100644 --- a/helix-view/src/graphics.rs +++ b/helix-view/src/graphics.rs @@ -1,12 +1,12 @@ -use anyhow::{anyhow, Error}; use bitflags::bitflags; -use serde::de::{self, Deserialize, Deserializer}; +use serde::Deserialize; use std::{ cmp::{max, min}, str::FromStr, }; -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(Debug, Clone, Copy, PartialEq, Deserialize)] +#[serde(rename_all = "lowercase")] /// UNSTABLE pub enum CursorKind { /// █ @@ -25,30 +25,6 @@ impl Default for CursorKind { } } -impl FromStr for CursorKind { - type Err = Error; - - fn from_str(s: &str) -> Result { - match s { - "bar" => Ok(Self::Bar), - "block" => Ok(Self::Block), - "underline" => Ok(Self::Underline), - _ => Err(anyhow!("Invalid cursor '{}'", s)), - } - } -} - -// toml deserializer doesn't seem to recognize string as enum -impl<'de> Deserialize<'de> for CursorKind { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let s = String::deserialize(deserializer)?; - s.parse().map_err(de::Error::custom) - } -} - #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Margin { pub vertical: u16,