diff options
Diffstat (limited to 'serde_yaml-0.9.25/src/path.rs')
-rw-r--r-- | serde_yaml-0.9.25/src/path.rs | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/serde_yaml-0.9.25/src/path.rs b/serde_yaml-0.9.25/src/path.rs deleted file mode 100644 index 095add0..0000000 --- a/serde_yaml-0.9.25/src/path.rs +++ /dev/null @@ -1,34 +0,0 @@ -use std::fmt::{self, Display}; - -/// Path to the current value in the input, like `dependencies.serde.typo1`. -#[derive(Copy, Clone)] -pub enum Path<'a> { - Root, - Seq { parent: &'a Path<'a>, index: usize }, - Map { parent: &'a Path<'a>, key: &'a str }, - Alias { parent: &'a Path<'a> }, - Unknown { parent: &'a Path<'a> }, -} - -impl<'a> Display for Path<'a> { - fn fmt(&self, formatter: &mut fmt::Formatter) -> Result<(), fmt::Error> { - struct Parent<'a>(&'a Path<'a>); - - impl<'a> Display for Parent<'a> { - fn fmt(&self, formatter: &mut fmt::Formatter) -> Result<(), fmt::Error> { - match self.0 { - Path::Root => Ok(()), - path => write!(formatter, "{}.", path), - } - } - } - - match self { - Path::Root => formatter.write_str("."), - Path::Seq { parent, index } => write!(formatter, "{}[{}]", parent, index), - Path::Map { parent, key } => write!(formatter, "{}{}", Parent(parent), key), - Path::Alias { parent } => write!(formatter, "{}", parent), - Path::Unknown { parent } => write!(formatter, "{}?", Parent(parent)), - } - } -} |