minidom: Remove NSChoice::None
Although it is still possible to create such elements, this is not a a case that should happen in XMPP. Changing to API to prevent the creation of these elements is next on the list. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
9737194b5e
commit
20b224855c
2 changed files with 1 additions and 25 deletions
|
@ -280,7 +280,6 @@ impl Element {
|
|||
/// assert_eq!(elem.is("wrong", "namespace"), false);
|
||||
/// assert_eq!(elem.is("wrong", "wrong"), false);
|
||||
///
|
||||
/// assert_eq!(elem.is("name", NSChoice::None), false);
|
||||
/// assert_eq!(elem.is("name", NSChoice::OneOf("namespace")), true);
|
||||
/// assert_eq!(elem.is("name", NSChoice::OneOf("foo")), false);
|
||||
/// assert_eq!(elem.is("name", NSChoice::AnyOf(&["foo", "namespace"])), true);
|
||||
|
@ -288,7 +287,6 @@ impl Element {
|
|||
///
|
||||
/// let elem2 = Element::builder("name").build();
|
||||
///
|
||||
/// assert_eq!(elem2.is("name", NSChoice::None), true);
|
||||
/// assert_eq!(elem2.is("name", NSChoice::Any), true);
|
||||
/// ```
|
||||
pub fn is<'a, N: AsRef<str>, NS: Into<NSChoice<'a>>>(&self, name: N, namespace: NS) -> bool {
|
||||
|
@ -307,7 +305,6 @@ impl Element {
|
|||
/// assert_eq!(elem.has_ns("namespace"), true);
|
||||
/// assert_eq!(elem.has_ns("wrong"), false);
|
||||
///
|
||||
/// assert_eq!(elem.has_ns(NSChoice::None), false);
|
||||
/// assert_eq!(elem.has_ns(NSChoice::OneOf("namespace")), true);
|
||||
/// assert_eq!(elem.has_ns(NSChoice::OneOf("foo")), false);
|
||||
/// assert_eq!(elem.has_ns(NSChoice::AnyOf(&["foo", "namespace"])), true);
|
||||
|
@ -315,7 +312,6 @@ impl Element {
|
|||
///
|
||||
/// let elem2 = Element::builder("name").build();
|
||||
///
|
||||
/// assert_eq!(elem2.has_ns(NSChoice::None), true);
|
||||
/// assert_eq!(elem2.has_ns(NSChoice::Any), true);
|
||||
/// ```
|
||||
pub fn has_ns<'a, NS: Into<NSChoice<'a>>>(&self, namespace: NS) -> bool {
|
||||
|
@ -667,12 +663,6 @@ impl Element {
|
|||
/// assert_eq!(elem.get_child("c", "ns"), None);
|
||||
/// assert_eq!(elem.get_child("b", "other_ns"), None);
|
||||
/// assert_eq!(elem.get_child("a", "inexistent_ns"), None);
|
||||
///
|
||||
/// let elem: Element = r#"<node><a xmlns="other_ns" /><b /></node>"#.parse().unwrap();
|
||||
/// assert_eq!(elem.get_child("a", NSChoice::None), None);
|
||||
/// assert!(elem.get_child("a", NSChoice::Any).unwrap().is("a", "other_ns"));
|
||||
/// assert!(elem.get_child("b", NSChoice::None).unwrap().is("b", NSChoice::None));
|
||||
/// assert!(elem.get_child("b", NSChoice::Any).unwrap().is("b", NSChoice::None));
|
||||
/// ```
|
||||
pub fn get_child<'a, N: AsRef<str>, NS: Into<NSChoice<'a>>>(
|
||||
&self,
|
||||
|
@ -723,12 +713,6 @@ impl Element {
|
|||
/// assert_eq!(elem.has_child("b", "ns"), true);
|
||||
/// assert_eq!(elem.has_child("b", "other_ns"), false);
|
||||
/// assert_eq!(elem.has_child("b", "inexistent_ns"), false);
|
||||
///
|
||||
/// let elem: Element = r#"<node><a xmlns="other_ns" /><b /></node>"#.parse().unwrap();
|
||||
/// assert_eq!(elem.has_child("a", NSChoice::None), false);
|
||||
/// assert_eq!(elem.has_child("a", NSChoice::OneOf("other_ns")), true);
|
||||
/// assert_eq!(elem.has_child("a", NSChoice::Any), true);
|
||||
/// assert_eq!(elem.has_child("b", NSChoice::None), true);
|
||||
/// ```
|
||||
pub fn has_child<'a, N: AsRef<str>, NS: Into<NSChoice<'a>>>(
|
||||
&self,
|
||||
|
@ -751,11 +735,6 @@ impl Element {
|
|||
/// assert!(elem.remove_child("a", "ns").unwrap().is("a", "ns"));
|
||||
/// assert!(elem.remove_child("a", "ns").is_none());
|
||||
/// assert!(elem.remove_child("inexistent", "inexistent").is_none());
|
||||
///
|
||||
/// let mut elem: Element = r#"<node><a xmlns="other_ns" /><b /></node>"#.parse().unwrap();
|
||||
/// assert!(elem.remove_child("a", NSChoice::None).is_none());
|
||||
/// assert!(elem.remove_child("a", NSChoice::Any).unwrap().is("a", "other_ns"));
|
||||
/// assert!(elem.remove_child("b", NSChoice::None).unwrap().is("b", NSChoice::None));
|
||||
/// ```
|
||||
pub fn remove_child<'a, N: AsRef<str>, NS: Into<NSChoice<'a>>>(
|
||||
&mut self,
|
||||
|
|
|
@ -15,8 +15,6 @@ use std::rc::Rc;
|
|||
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
|
||||
/// Use to compare namespaces
|
||||
pub enum NSChoice<'a> {
|
||||
/// The element must have no namespace
|
||||
None,
|
||||
/// The element's namespace must match the specified namespace
|
||||
OneOf(&'a str),
|
||||
/// The element's namespace must be in the specified vector
|
||||
|
@ -34,9 +32,8 @@ impl<'a> From<&'a str> for NSChoice<'a> {
|
|||
impl<'a> NSChoice<'a> {
|
||||
fn compare(&self, ns: Option<&str>) -> bool {
|
||||
match (ns, &self) {
|
||||
(None, NSChoice::None) | (None, NSChoice::Any) => true,
|
||||
(None, NSChoice::Any) => true,
|
||||
(None, NSChoice::OneOf(_)) | (None, NSChoice::AnyOf(_)) => false,
|
||||
(Some(_), NSChoice::None) => false,
|
||||
(Some(_), NSChoice::Any) => true,
|
||||
(Some(ns), NSChoice::OneOf(wanted_ns)) => &ns == wanted_ns,
|
||||
(Some(ns), NSChoice::AnyOf(wanted_nss)) => wanted_nss.iter().any(|w| &ns == w),
|
||||
|
|
Loading…
Reference in a new issue