Struct FlatNode

Source
pub struct FlatNode {
    pub children: IndexMap<String, Option<String>>,
    pub inherits: IndexMap<String, String>,
    pub attributes: IndexMap<String, Arc<Value>>,
}
Expand description

All opinions about one path, merged in layer order.

Upstream calls this a pre-composition node. References are still paths; composition resolves them.

Fields§

§children: IndexMap<String, Option<String>>

Child name to referenced path. A None value survives flattening so that composition can delete a child inherited from elsewhere.

§inherits: IndexMap<String, String>

Inherit name to referenced path. null entries are already applied and removed.

§attributes: IndexMap<String, Arc<Value>>

Attribute values. A JSON null is kept as a value, as upstream does; it does not delete the attribute.

Implementations§

Source§

impl FlatNode

Source

pub fn merge(&mut self, node: &IfcxNode)

Merges one later opinion into this node.

For each map, entries of node are applied in their order and replace an existing entry of the same name in place:

  • children: the value is stored as written, None included;
  • inherits: None removes the entry, a path sets it;
  • attributes: the value is stored as written, null included.

The node’s path and unknown fields are not looked at.

Source

pub fn merge_owned(&mut self, node: IfcxNode)

Merges one later opinion into this node, moving its maps and attribute values instead of copying them. Same rules as merge.

Trait Implementations§

Source§

impl Clone for FlatNode

Source§

fn clone(&self) -> FlatNode

Returns a copy 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 FlatNode

Source§

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

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

impl Default for FlatNode

Source§

fn default() -> FlatNode

Returns the “default value” for a type. Read more
Source§

impl PartialEq for FlatNode

Source§

fn eq(&self, other: &FlatNode) -> 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 StructuralPartialEq for FlatNode

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<T> Same for T

Source§

type Output = T

Should always be Self
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, 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.