Struct KdlNode

Source
pub struct KdlNode { /* private fields */ }
Expand description

Represents an individual KDL Node inside a KDL Document.

Implementations§

Source§

impl KdlNode

Source

pub fn new(name: impl Into<KdlIdentifier>) -> Self

Creates a new KdlNode with a given name.

Source

pub fn name(&self) -> &KdlIdentifier

Gets this node’s name.

Source

pub fn name_mut(&mut self) -> &mut KdlIdentifier

Gets a mutable reference to this node’s name.

Source

pub fn set_name(&mut self, name: impl Into<KdlIdentifier>)

Sets this node’s name.

Source

pub fn span(&self) -> SourceSpan

Gets this node’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.

Source

pub fn set_span(&mut self, span: impl Into<SourceSpan>)

Sets this node’s span.

Source

pub fn ty(&self) -> Option<&KdlIdentifier>

Gets the node’s type identifier, if any.

Source

pub fn ty_mut(&mut self) -> &mut Option<KdlIdentifier>

Gets a mutable reference to the node’s type identifier.

Source

pub fn set_ty(&mut self, ty: impl Into<KdlIdentifier>)

Sets the node’s type identifier.

Source

pub fn entries(&self) -> &[KdlEntry]

Returns a reference to this node’s entries (arguments and properties).

Source

pub fn entries_mut(&mut self) -> &mut Vec<KdlEntry>

Returns a mutable reference to this node’s entries (arguments and properties).

Source

pub fn clear_format(&mut self)

Clears leading and trailing text (whitespace, comments), as well as the space before the children block, if any. Individual entries and their formatting will be preserved.

If you want to clear formatting on all children and entries as well, use Self::clear_format_recursive.

Source

pub fn clear_format_recursive(&mut self)

Clears leading and trailing text (whitespace, comments), as well as the space before the children block, if any. Individual entries and children formatting will also be cleared.

Source

pub fn entry(&self, key: impl Into<NodeKey>) -> Option<&KdlEntry>

Fetches an entry by key. Number keys will look up arguments, strings will look up properties.

Source

pub fn entry_mut(&mut self, key: impl Into<NodeKey>) -> Option<&mut KdlEntry>

Fetches a mutable referene to an entry by key. Number keys will look up arguments, strings will look up properties.

Source

pub fn children(&self) -> Option<&KdlDocument>

Returns a reference to this node’s children, if any.

Source

pub fn children_mut(&mut self) -> &mut Option<KdlDocument>

Returns a mutable reference to this node’s children, if any.

Source

pub fn set_children(&mut self, children: KdlDocument)

Sets the KdlDocument representing this node’s children.

Source

pub fn clear_children(&mut self)

Removes this node’s children completely.

Source

pub fn ensure_children(&mut self) -> &mut KdlDocument

Returns a mutable reference to this node’s children KdlDocument, creating one first if one does not already exist.

Source

pub fn format(&self) -> Option<&KdlNodeFormat>

Gets the formatting details (including whitespace and comments) for this node.

Source

pub fn format_mut(&mut self) -> Option<&mut KdlNodeFormat>

Gets a mutable reference to this node’s formatting details.

Source

pub fn set_format(&mut self, format: KdlNodeFormat)

Sets the formatting details for this node.

Source

pub fn autoformat(&mut self)

Auto-formats this node and its contents.

Source

pub fn autoformat_no_comments(&mut self)

Auto-formats this node and its contents, stripping comments.

Source

pub fn autoformat_config(&mut self, config: &FormatConfig<'_>)

Auto-formats this node and its contents according to config.

Source

pub fn parse(s: &str) -> Result<Self, KdlError>

Parses a string into a node.

If the v1-fallback feature is enabled, this method will first try to parse the string as a KDL v2 node, and, if that fails, it will try to parse again as a KDL v1 node. If both fail, only the v2 parse errors will be returned.

Source

pub fn ensure_v2(&mut self)

Makes sure this node is in v2 format.

Source§

impl KdlNode

Source

pub fn iter(&self) -> EntryIter<'_>

Returns an iterator over the node’s entries, including properties.

Source

pub fn iter_mut(&mut self) -> EntryIterMut<'_>

Returns a mutable iterator over the node’s entries, including properties.

Source

pub fn iter_children(&self) -> ChildrenIter<'_>

Returns an iterator over the node’s children, if any. Nodes without children will return an empty iterator.

Source

pub fn iter_children_mut(&mut self) -> ChildrenIterMut<'_>

Returns a mutable iterator over the node’s children, if any. Nodes without children will return an empty iterator.

Source

pub fn get(&self, key: impl Into<NodeKey>) -> Option<&KdlValue>

Gets a value by key. Number keys will look up arguments, strings will look up properties.

Source

pub fn get_mut(&mut self, key: impl Into<NodeKey>) -> Option<&mut KdlValue>

Fetches a mutable referene to an value by key. Number keys will look up arguments, strings will look up properties.

Source

pub fn len(&self) -> usize

Number of entries in this node.

Source

pub fn is_empty(&self) -> bool

Returns true if this node is completely empty (including whitespace).

Source

pub fn clear(&mut self)

Shorthand for self.entries_mut().clear()

Source

pub fn push(&mut self, entry: impl Into<KdlEntry>)

Shorthand for self.entries_mut().push(entry).

Source

pub fn insert( &mut self, key: impl Into<NodeKey>, entry: impl Into<KdlEntry>, ) -> Option<KdlEntry>

Inserts an entry into this node. If an entry already exists with the same string key, it will be replaced and the previous entry will be returned.

Numerical keys will insert arguments, string keys will insert properties.

Source

pub fn remove(&mut self, key: impl Into<NodeKey>) -> Option<KdlEntry>

Removes an entry from this node. If an entry already exists with the same key, it will be returned.

Numerical keys will remove arguments, string keys will remove properties.

Source

pub fn retain<F>(&mut self, keep: F)
where F: FnMut(&KdlEntry) -> bool,

Retains only the elements specified by the predicate.

Source

pub fn sort_by<F>(&mut self, compare: F)
where F: FnMut(&KdlEntry, &KdlEntry) -> Ordering,

Sorts the slice with a comparison function, preserving initial order of equal elements.

Source

pub fn sort_by_key<K, F>(&mut self, f: F)
where F: FnMut(&KdlEntry) -> K, K: Ord,

Sorts the slice with a key extraction function, preserving initial order of equal elements.

Trait Implementations§

Source§

impl Clone for KdlNode

Source§

fn clone(&self) -> KdlNode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for KdlNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for KdlNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromStr for KdlNode

Source§

type Err = KdlError

The associated error which can be returned from parsing.
Source§

fn from_str(input: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for KdlNode

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Index<&str> for KdlNode

Source§

type Output = KdlValue

The returned type after indexing.
Source§

fn index(&self, key: &str) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl Index<usize> for KdlNode

Source§

type Output = KdlValue

The returned type after indexing.
Source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl IndexMut<&str> for KdlNode

Source§

fn index_mut(&mut self, key: &str) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl IndexMut<usize> for KdlNode

Source§

fn index_mut(&mut self, index: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl PartialEq for KdlNode

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for KdlNode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.