pub enum YamlDataOwned<Node>{
Representation(String, ScalarStyle, Option<Tag>),
Value(ScalarOwned),
Sequence(Vec<Node>),
Mapping(LinkedHashMap<Node, Node>),
Tagged(Tag, Box<Node>),
Alias(usize),
BadValue,
}Expand description
YAML data for nodes that will contain annotations.
Owned version of YamlData.
Variants§
Representation(String, ScalarStyle, Option<Tag>)
The raw string from the input.
Value(ScalarOwned)
The resolved value from the representation.
See YamlData::Value.
Sequence(Vec<Node>)
YAML sequence, can be accessed as a Vec.
See YamlData::Sequence.
Mapping(LinkedHashMap<Node, Node>)
YAML mapping, can be accessed as a LinkedHashMap.
See YamlData::Mapping.
Tagged(Tag, Box<Node>)
A tagged node.
See YamlData::Tagged.
Alias(usize)
Alias, not fully supported yet.
See YamlData::Alias.
BadValue
A variant used when parsing the representation of a scalar node fails.
See YamlData::BadValue.
Implementations§
Source§impl<Node> YamlDataOwned<Node>
impl<Node> YamlDataOwned<Node>
Sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Get a copy of the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with a copy of the $t contained.
Otherwise, return None.
Sourcepub fn as_integer(&self) -> Option<i64>
pub fn as_integer(&self) -> Option<i64>
Get a copy of the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with a copy of the $t contained.
Otherwise, return None.
Sourcepub fn as_floating_point(&self) -> Option<f64>
pub fn as_floating_point(&self) -> Option<f64>
Get a copy of the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with a copy of the $t contained.
Otherwise, return None.
Sourcepub fn as_str(&self) -> Option<&str>
pub fn as_str(&self) -> Option<&str>
Get a reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&$t) with the $t contained. Otherwise,
return None.
Sourcepub fn as_bool_mut(&mut self) -> Option<&mut bool>
pub fn as_bool_mut(&mut self) -> Option<&mut bool>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn as_integer_mut(&mut self) -> Option<&mut i64>
pub fn as_integer_mut(&mut self) -> Option<&mut i64>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn as_floating_point_mut(&mut self) -> Option<&mut f64>
pub fn as_floating_point_mut(&mut self) -> Option<&mut f64>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn into_bool(self) -> Option<bool>
pub fn into_bool(self) -> Option<bool>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn into_integer(self) -> Option<i64>
pub fn into_integer(self) -> Option<i64>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn into_floating_point(self) -> Option<f64>
pub fn into_floating_point(self) -> Option<f64>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn into_string(self) -> Option<String>
pub fn into_string(self) -> Option<String>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn as_mapping(&self) -> Option<&LinkedHashMap<Node, Node>>
pub fn as_mapping(&self) -> Option<&LinkedHashMap<Node, Node>>
Get a reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&$t) with the $t contained. Otherwise,
return None.
Sourcepub fn as_sequence(&self) -> Option<&Vec<Node>>
pub fn as_sequence(&self) -> Option<&Vec<Node>>
Get a reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&$t) with the $t contained. Otherwise,
return None.
Sourcepub fn as_vec(&self) -> Option<&Vec<Node>>
pub fn as_vec(&self) -> Option<&Vec<Node>>
Get a reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&$t) with the $t contained. Otherwise,
return None.
Sourcepub fn as_mapping_mut(&mut self) -> Option<&mut LinkedHashMap<Node, Node>>
pub fn as_mapping_mut(&mut self) -> Option<&mut LinkedHashMap<Node, Node>>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn as_sequence_mut(&mut self) -> Option<&mut Vec<Node>>
pub fn as_sequence_mut(&mut self) -> Option<&mut Vec<Node>>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn as_vec_mut(&mut self) -> Option<&mut Vec<Node>>
pub fn as_vec_mut(&mut self) -> Option<&mut Vec<Node>>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn into_mapping(self) -> Option<LinkedHashMap<Node, Node>>
pub fn into_mapping(self) -> Option<LinkedHashMap<Node, Node>>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn into_vec(self) -> Option<Vec<Node>>
pub fn into_vec(self) -> Option<Vec<Node>>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn into_sequence(self) -> Option<Vec<Node>>
pub fn into_sequence(self) -> Option<Vec<Node>>
Get the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some($t) with the $t contained. Otherwise,
return None.
Sourcepub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_integer(&self) -> bool
pub fn is_integer(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_null(&self) -> bool
pub fn is_null(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_floating_point(&self) -> bool
pub fn is_floating_point(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_string(&self) -> bool
pub fn is_string(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_sequence(&self) -> bool
pub fn is_sequence(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_badvalue(&self) -> bool
pub fn is_badvalue(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_mapping(&self) -> bool
pub fn is_mapping(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_alias(&self) -> bool
pub fn is_alias(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_representation(&self) -> bool
pub fn is_representation(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_value(&self) -> bool
pub fn is_value(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn is_tag_node(&self) -> bool
pub fn is_tag_node(&self) -> bool
Check whether the YAML enum contains the given variant.
§Return
If the variant of self is Self::$variant, return true. Otherwise, return false.
Sourcepub fn get_tagged_node(&self) -> Option<&Node>
pub fn get_tagged_node(&self) -> Option<&Node>
Sourcepub fn get_tagged_node_mut(&mut self) -> Option<&mut Node>
pub fn get_tagged_node_mut(&mut self) -> Option<&mut Node>
Sourcepub fn is_empty_collection(&self) -> bool
pub fn is_empty_collection(&self) -> bool
Check whether the YAML enum is an empty sequence ([]) or empty mapping ({}).
§Return
If the variant of self is Self::Sequence(x) with x.is_empty() or Self::Mapping(x)
with y.is_empty(), return true. If self is a non-empty sequence, a non-empty mapping,
or not a collection, return false.
Sourcepub fn is_non_empty_collection(&self) -> bool
pub fn is_non_empty_collection(&self) -> bool
Check whether the YAML enum is a non-empty sequence or a non-empty mapping.
§Return
If the variant of self is Self::Sequence(x) with !x.is_empty() or Self::Mapping(x)
with !y.is_empty(), return true. If self is an empty sequence, an empty mapping, or
not a collection, return false.
Sourcepub fn parse_representation_recursive(&mut self) -> bool
pub fn parse_representation_recursive(&mut self) -> bool
Call Self::parse_representation on self and children nodes.
If self was Self::Value or Self::Alias upon calling, this function does nothing
and returns true.
If Self::parse_representation fails on a descendent node, this function will not short
circuit but still attempt to call Self::parse_representation on further nodes. Even if
all further nodes succeed, this function will still return false.
§Return
Returns true if all self and its children are successfully parsed, false otherwise.
Sourcepub fn or(self, other: Self) -> Self
pub fn or(self, other: Self) -> Self
If a value is null or otherwise bad (see variants), consume it and
replace it with a given value other. Otherwise, return self unchanged.
assert_eq!(
Yaml::Value(Scalar::Null).or(Yaml::Value(Scalar::Integer(3))),
Yaml::Value(Scalar::Integer(3))
);
assert_eq!(
Yaml::Value(Scalar::Integer(3)).or(Yaml::Value(Scalar::Integer(7))),
Yaml::Value(Scalar::Integer(3))
);Sourcepub fn borrowed_or<'a>(&'a self, other: &'a Self) -> &'a Self
pub fn borrowed_or<'a>(&'a self, other: &'a Self) -> &'a Self
See Self::or for behavior.
This performs the same operations, but with borrowed values for less linear pipelines.
Sourcepub fn contains_mapping_key(&self, key: &str) -> bool
pub fn contains_mapping_key(&self, key: &str) -> bool
Check whether self is a Self::Mapping and that it contains the given key.
This is equivalent to:
matches!(self, Self::Mapping(ref x) if x.contains_key(&Yaml::<'_>::String(key.into())))§Return
If the variant of self is Self::Mapping and the mapping contains the key, returns true.
Otherwise, returns false.
Sourcepub fn as_mapping_get(&self, key: &str) -> Option<&Node>
pub fn as_mapping_get(&self, key: &str) -> Option<&Node>
Return the value associated to the given key if self is a Self::Mapping.
This is equivalent to:
self.as_mapping().and_then(|mapping| mapping.get(key))§Return
If the variant of self is Self::Mapping and the mapping contains the key, returns the
value associated with it.
Otherwise, returns None.
Sourcepub fn as_mapping_get_mut(&mut self, key: &str) -> Option<&mut Node>
pub fn as_mapping_get_mut(&mut self, key: &str) -> Option<&mut Node>
Return the value associated to the given key if self is a Self::Mapping.
This is equivalent to:
self.as_mapping_mut().and_then(|mapping| mapping.get_mut(key))§Return
If the variant of self is Self::Mapping and the mapping contains the key, returns the
value associated with it.
Otherwise, returns None.
Sourcepub fn as_sequence_get(&self, idx: usize) -> Option<&Node>
pub fn as_sequence_get(&self, idx: usize) -> Option<&Node>
Return the value at the given index if self is a Self::Sequence.
This is equivalent to:
self.as_sequence().and_then(|seq| seq.get(idx))§Return
If the variant of self is Self::Sequence and the index is not out of bounds, returns
the value at the given index.
Otherwise, returns None.
Sourcepub fn as_sequence_get_mut(&mut self, idx: usize) -> Option<&mut Node>
pub fn as_sequence_get_mut(&mut self, idx: usize) -> Option<&mut Node>
Return the value at the given index if self is a Self::Sequence.
This is equivalent to:
self.as_sequence_mut().and_then(|seq| seq.get_mut(idx))§Return
If the variant of self is Self::Sequence and the index is not out of bounds, returns
the value at the given index.
Otherwise, returns None.
Source§impl<Node> YamlDataOwned<Node>
impl<Node> YamlDataOwned<Node>
Sourcepub fn as_str_mut(&mut self) -> Option<&mut str>
pub fn as_str_mut(&mut self) -> Option<&mut str>
Get a mutable reference to the inner object in the YAML enum if it is a $t.
§Return
If the variant of self is Self::$variant, return Some(&mut $t) with the $t contained.
Otherwise, return None.
Sourcepub fn parse_representation(&mut self) -> bool
pub fn parse_representation(&mut self) -> bool
If self is of the Self::Representation variant, parse it to the value.
If self was Self::Value, Self::Sequence, Self::Mapping or Self::Alias
upon calling, this function does nothing and returns true.
If parsing fails, *self is assigned Self::BadValue.
§Return
Returns true if self is successfully parsed, false otherwise.
Trait Implementations§
Source§impl<Node> Clone for YamlDataOwned<Node>
impl<Node> Clone for YamlDataOwned<Node>
Source§fn clone(&self) -> YamlDataOwned<Node>
fn clone(&self) -> YamlDataOwned<Node>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<Node> Debug for YamlDataOwned<Node>
impl<Node> Debug for YamlDataOwned<Node>
Source§impl From<YamlDataOwned<MarkedYamlOwned>> for MarkedYamlOwned
impl From<YamlDataOwned<MarkedYamlOwned>> for MarkedYamlOwned
Source§fn from(value: YamlDataOwned<MarkedYamlOwned>) -> Self
fn from(value: YamlDataOwned<MarkedYamlOwned>) -> Self
Source§impl<Node> Hash for YamlDataOwned<Node>
impl<Node> Hash for YamlDataOwned<Node>
Source§impl<'key, Node> Index<&'key str> for YamlDataOwned<Node>
impl<'key, Node> Index<&'key str> for YamlDataOwned<Node>
Source§impl<Node> Index<usize> for YamlDataOwned<Node>
impl<Node> Index<usize> for YamlDataOwned<Node>
Source§fn index(&self, idx: usize) -> &Node
fn index(&self, idx: usize) -> &Node
Perform indexing if self is a sequence or a mapping.
§Panics
This function panics if the index given is out of range (as per Index). If self is a
[$t::Sequence], this is when the index is bigger or equal to the length of the underlying
Vec. If self is a [$t::Mapping], this is when the mapping sequence
does not contain Scalar::Integer(idx) as a key.
This function also panics if self is not a [$t::Sequence] nor a [$t::Mapping].
Source§impl<'key, Node> IndexMut<&'key str> for YamlDataOwned<Node>
impl<'key, Node> IndexMut<&'key str> for YamlDataOwned<Node>
Source§impl<Node> IndexMut<usize> for YamlDataOwned<Node>
impl<Node> IndexMut<usize> for YamlDataOwned<Node>
Source§fn index_mut(&mut self, idx: usize) -> &mut Node
fn index_mut(&mut self, idx: usize) -> &mut Node
Perform indexing if self is a sequence or a mapping.
§Panics
This function panics if the index given is out of range (as per IndexMut). If self is
a [$t::Sequence], this is when the index is bigger or equal to the length of the
underlying Vec. If self is a [$t::Mapping], this is when the mapping sequence does
not contain Scalar::Integer(idx) as a key.
This function also panics if self is not a [$t::Sequence] nor a [$t::Mapping].