pub struct KdlDocument { /* private fields */ }
Expand description
Represents a KDL
Document
.
This type is also used to manage a KdlNode
’s Children Block
,
when present.
§Examples
The easiest way to create a KdlDocument
is to parse it:
let kdl: KdlDocument = "foo 1 2 3\nbar 4 5 6".parse().expect("parse failed");
Implementations§
Source§impl KdlDocument
impl KdlDocument
Sourcepub fn span(&self) -> SourceSpan
pub fn span(&self) -> SourceSpan
Gets this document’s span.
This value will be properly initialized when created via KdlDocument::parse
but may become invalidated if the document is mutated. We do not currently
guarantee this to yield any particularly consistent results at that point.
Sourcepub fn set_span(&mut self, span: impl Into<SourceSpan>)
pub fn set_span(&mut self, span: impl Into<SourceSpan>)
Sets this document’s span.
Sourcepub fn get(&self, name: &str) -> Option<&KdlNode>
pub fn get(&self, name: &str) -> Option<&KdlNode>
Gets the first child node with a matching name.
Sourcepub fn get_mut(&mut self, name: &str) -> Option<&mut KdlNode>
pub fn get_mut(&mut self, name: &str) -> Option<&mut KdlNode>
Gets a reference to the first child node with a matching name.
Sourcepub fn get_arg(&self, name: &str) -> Option<&KdlValue>
pub fn get_arg(&self, name: &str) -> Option<&KdlValue>
Gets the first argument (value) of the first child node with a matching name. This is a shorthand utility for cases where a document is being used as a key/value store.
§Examples
Given a document like this:
foo 1
bar false
You can fetch the value of foo
in a single call like this:
assert_eq!(doc.get_arg("foo"), Some(&1.into()));
Sourcepub fn iter_args(&self, name: &str) -> impl Iterator<Item = &KdlValue>
pub fn iter_args(&self, name: &str) -> impl Iterator<Item = &KdlValue>
Returns an iterator of the all node arguments (value) of the first child node with a matching name. This is a shorthand utility for cases where a document is being used as a key/value store and the value is expected to be array-ish.
If a node has no arguments, this will return an empty array.
§Examples
Given a document like this:
foo 1 2 3
bar #false
You can fetch the arguments for foo
in a single call like this:
assert_eq!(
doc.iter_args("foo").collect::<Vec<&KdlValue>>(),
vec![&1.into(), &2.into(), &3.into()]
);
Sourcepub fn get_arg_mut(&mut self, name: &str) -> Option<&mut KdlValue>
pub fn get_arg_mut(&mut self, name: &str) -> Option<&mut KdlValue>
Gets a mutable reference to the first argument (value) of the first child node with a matching name. This is a shorthand utility for cases where a document is being used as a key/value store.
Sourcepub fn iter_dash_args(&self, name: &str) -> impl Iterator<Item = &KdlValue>
pub fn iter_dash_args(&self, name: &str) -> impl Iterator<Item = &KdlValue>
This utility makes it easy to interact with a KDL convention where
child nodes named -
are treated as array-ish values.
§Examples
Given a document like this:
foo {
- 1
- 2
- #false
}
You can fetch the dashed child values of foo
in a single call like this:
assert_eq!(
doc.iter_dash_args("foo").collect::<Vec<&KdlValue>>(),
vec![&1.into(), &2.into(), &false.into()]
);
Sourcepub fn nodes_mut(&mut self) -> &mut Vec<KdlNode>
pub fn nodes_mut(&mut self) -> &mut Vec<KdlNode>
Returns a mutable reference to this document’s child nodes.
Sourcepub fn format(&self) -> Option<&KdlDocumentFormat>
pub fn format(&self) -> Option<&KdlDocumentFormat>
Gets the formatting details (including whitespace and comments) for this entry.
Sourcepub fn format_mut(&mut self) -> Option<&mut KdlDocumentFormat>
pub fn format_mut(&mut self) -> Option<&mut KdlDocumentFormat>
Gets a mutable reference to this entry’s formatting details.
Sourcepub fn set_format(&mut self, format: KdlDocumentFormat)
pub fn set_format(&mut self, format: KdlDocumentFormat)
Sets the formatting details for this entry.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if this document is completely empty (including whitespace)
Sourcepub fn clear_format(&mut self)
pub fn clear_format(&mut self)
Clears leading and trailing text (whitespace, comments). KdlNode
s in
this document will be unaffected.
If you need to clear the KdlNode
s, use Self::clear_format_recursive
.
Sourcepub fn clear_format_recursive(&mut self)
pub fn clear_format_recursive(&mut self)
Clears leading and trailing text (whitespace, comments), also clearing
all the KdlNode
s in the document.
Sourcepub fn autoformat(&mut self)
pub fn autoformat(&mut self)
Auto-formats this Document, making everything nice while preserving comments.
Sourcepub fn autoformat_no_comments(&mut self)
pub fn autoformat_no_comments(&mut self)
Formats the document and removes all comments from the document.
Sourcepub fn autoformat_config(&mut self, config: &FormatConfig<'_>)
pub fn autoformat_config(&mut self, config: &FormatConfig<'_>)
Formats the document according to config
.
Sourcepub fn parse(s: &str) -> Result<Self, KdlError>
pub fn parse(s: &str) -> Result<Self, KdlError>
Parses a string into a document.
If the v1-fallback
feature is enabled, this method will first try to
parse the string as a KDL v2 document, and, if that fails, it will try
to parse again as a KDL v1 document. If both fail, a heuristic will be
applied to try and detect the “intended” KDL version, and that version’s
error(s) will be returned.
Trait Implementations§
Source§impl Clone for KdlDocument
impl Clone for KdlDocument
Source§fn clone(&self) -> KdlDocument
fn clone(&self) -> KdlDocument
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for KdlDocument
impl Debug for KdlDocument
Source§impl Default for KdlDocument
impl Default for KdlDocument
Source§impl Display for KdlDocument
impl Display for KdlDocument
Source§impl FromStr for KdlDocument
impl FromStr for KdlDocument
Source§impl Hash for KdlDocument
impl Hash for KdlDocument
Source§impl IntoIterator for KdlDocument
impl IntoIterator for KdlDocument
Source§impl PartialEq for KdlDocument
impl PartialEq for KdlDocument
impl Eq for KdlDocument
Auto Trait Implementations§
impl Freeze for KdlDocument
impl RefUnwindSafe for KdlDocument
impl Send for KdlDocument
impl Sync for KdlDocument
impl Unpin for KdlDocument
impl UnwindSafe for KdlDocument
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more