BREAKING
-
Node
was converted to anenum
similar tosyn
'sExpr
. This was primarily done because the old API required manual documentation lookups to decide whether it is safe to unwrap a node name or value based on theNode::node_type
. This is not really type safe or rusty, and hence the decision was made to move to a type safe API. There's also no measurable impact on performance. If you have feedback or concerns regarding this change, feel free to voice them in #26.Basically,
match node.node_type { NodeType::Element => node.name_as_string().unwrap(), NodeType::Attribute => node.name_as_string().unwrap(), NodeType::Text => node.value_as_string().unwrap(), ... }
becomes
match node { Node::Element(element) => element.name.to_string(), Node::Attribute(attribute) => attribute.key.to_string(), Node::Text(text) => String::try_from(&text.value).unwrap(), ... }
-
NodeName::span
was dropped, sinceNodeName
already implementssyn::spanned::Spanned
, which gives you thespan
method if you import the trait accordingly. -
NodeName::Colon
andNodeName::Dash
were merged intoNodeName::Punctuated
. This was done to allow attribute names likeon:some-event
. Thanks @gbj for working on it. (#34)