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
].