pub struct Vdf<'a> {
pub key: Key<'a>,
pub value: Value<'a>,
}Expand description
A loosely typed representation of VDF text
Vdf is represented as a single Key mapped to a single Value
§Parse
Vdfs will generally be created through the use of Vdf::parse() which takes a string
representing VDF text and attempts to parse it to a Vdf representation.
§Mutate
From there you can manipulate/extract from the representation as desired by using the standard
conventions on the internal types (plain old BTreeMaps, Vecs, and Cows all the way down)
§Render
The Vdf can also be rendered back to its text form through its Display implementation
§Example
use keyvalues_parser::Vdf;
// Parse
let vdf_text = r#"
"Outer Key"
{
"Inner Key" "Inner Value"
"Inner Key"
{
}
}
"#;
let mut parsed = Vdf::parse(vdf_text)?;
// Mutate: i.e. remove the last "Inner Key" pair
parsed
.value
.get_mut_obj()
.unwrap()
.get_mut("Inner Key")
.unwrap()
.pop();
// Render: prints
// "Outer Key"
// {
// "Inner Key" "Inner Value"
// }
println!("{}", parsed);Fields§
§key: Key<'a>§value: Value<'a>Implementations§
Trait Implementations§
Source§impl<'a> From<PartialVdf<'a>> for Vdf<'a>
impl<'a> From<PartialVdf<'a>> for Vdf<'a>
Source§fn from(partial: PartialVdf<'a>) -> Self
fn from(partial: PartialVdf<'a>) -> Self
Converts to this type from the input type.
Source§impl<'a> Ord for Vdf<'a>
impl<'a> Ord for Vdf<'a>
Source§impl<'a> PartialOrd for Vdf<'a>
impl<'a> PartialOrd for Vdf<'a>
impl<'a> Eq for Vdf<'a>
impl<'a> StructuralPartialEq for Vdf<'a>
Auto Trait Implementations§
impl<'a> Freeze for Vdf<'a>
impl<'a> RefUnwindSafe for Vdf<'a>
impl<'a> Send for Vdf<'a>
impl<'a> Sync for Vdf<'a>
impl<'a> Unpin for Vdf<'a>
impl<'a> UnwindSafe for Vdf<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more