ui/themes: fix attr parsing not recognizing links
parent
fc4b9f8919
commit
eedb03dcd0
|
@ -232,8 +232,12 @@ impl<'de> Deserialize<'de> for ThemeValue<Attr> {
|
|||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
if let Ok(s) = <Attr>::deserialize(deserializer) {
|
||||
Ok(ThemeValue::Value(s))
|
||||
if let Ok(s) = <String>::deserialize(deserializer) {
|
||||
if let Ok(c) = Attr::from_string_de::<'de, D>(s.clone()) {
|
||||
Ok(ThemeValue::Value(c))
|
||||
} else {
|
||||
Ok(ThemeValue::Link(s.into()))
|
||||
}
|
||||
} else {
|
||||
Err(de::Error::custom("invalid theme attribute value"))
|
||||
}
|
||||
|
|
|
@ -1397,17 +1397,7 @@ impl<'de> Deserialize<'de> for Attr {
|
|||
D: Deserializer<'de>,
|
||||
{
|
||||
if let Ok(s) = <String>::deserialize(deserializer) {
|
||||
match s.as_str() {
|
||||
"Default" => Ok(Attr::Default),
|
||||
"Bold" => Ok(Attr::Bold),
|
||||
"Underline" => Ok(Attr::Underline),
|
||||
"BoldUnderline" => Ok(Attr::BoldUnderline),
|
||||
"Reverse" => Ok(Attr::Reverse),
|
||||
"BoldReverse" => Ok(Attr::BoldReverse),
|
||||
"UnderlineReverse" => Ok(Attr::UnderlineReverse),
|
||||
"BoldReverseUnderline" => Ok(Attr::BoldReverseUnderline),
|
||||
_ => Err(de::Error::custom("invalid attr value")),
|
||||
}
|
||||
Attr::from_string_de::<'de, D>(s)
|
||||
} else {
|
||||
Err(de::Error::custom("invalid attr value"))
|
||||
}
|
||||
|
@ -1432,6 +1422,25 @@ impl Serialize for Attr {
|
|||
}
|
||||
}
|
||||
|
||||
impl Attr {
|
||||
pub fn from_string_de<'de, D>(s: String) -> std::result::Result<Self, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
match s.as_str() {
|
||||
"Default" => Ok(Attr::Default),
|
||||
"Bold" => Ok(Attr::Bold),
|
||||
"Underline" => Ok(Attr::Underline),
|
||||
"BoldUnderline" => Ok(Attr::BoldUnderline),
|
||||
"Reverse" => Ok(Attr::Reverse),
|
||||
"BoldReverse" => Ok(Attr::BoldReverse),
|
||||
"UnderlineReverse" => Ok(Attr::UnderlineReverse),
|
||||
"BoldReverseUnderline" => Ok(Attr::BoldReverseUnderline),
|
||||
_ => Err(de::Error::custom("invalid attr value")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn copy_area_with_break(
|
||||
grid_dest: &mut CellBuffer,
|
||||
grid_src: &CellBuffer,
|
||||
|
|
Loading…
Reference in New Issue