Simplify labelled command pattern match

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
pull/3958/head
Matthew Cheely 2 years ago
parent 73d8700f60
commit a1c746cdb9

@ -217,19 +217,14 @@ impl<'de> serde::de::Visitor<'de> for KeyTrieVisitor {
match command { match command {
None => Ok(KeyTrie::Node(KeyTrieNode::new(label, mapping, order))), None => Ok(KeyTrie::Node(KeyTrieNode::new(label, mapping, order))),
Some(cmd) => { Some(MappableCommand::Typable { name, args, .. }) if !label.is_empty() => {
let status = (cmd, label.is_empty()); Ok(KeyTrie::Leaf(MappableCommand::Typable {
if let (MappableCommand::Typable { name, args, .. }, false) = status { name,
Ok(MappableCommand::Typable { args,
name, doc: label.to_string(),
args, }))
doc: label.to_string(),
})
.map(KeyTrie::Leaf)
} else {
Ok(KeyTrie::Leaf(status.0))
}
} }
Some(command) => Ok(KeyTrie::Leaf(command)),
} }
} }
} }

Loading…
Cancel
Save