Tree

Struct Tree 

Source
pub struct Tree<'a>(pub Vec<TreeRuleset<'a>>);
Expand description

A nested CSS representation yielded from parsing. Tree also implements RenderCss if this is needed, though this output can’t be read by browsers and is not identical to the input since whitespace has been discarded.

Tuple Fields§

§0: Vec<TreeRuleset<'a>>

Implementations§

Source§

impl<'a> Tree<'a>

Source

pub fn flatten_tree(&self) -> Css<'a>

Flatten a nested Tree into a Css, or in other words, convert the result of a parse into something that can be rendered.

Source

pub fn transform<T>(&mut self, f: impl FnMut(&mut T))
where Self: TransformCss<T>,

A mutable transform which walks this AST recursively, invoking f for all nodes of type T.

§Example
use procss::{ast, parse, RenderCss};
let mut tree = parse("div{color: red;}").unwrap();
tree.transform(|rule: &mut ast::Rule| {
    rule.value = "green".into();
});

let css = tree.flatten_tree().as_css_string();
assert_eq!(css, "div{color:green;}");
Source

pub fn iter(&self) -> impl Iterator<Item = &TreeRuleset<'a>>

Iterate over the immediate children of this Tree (non-recursive).

Trait Implementations§

Source§

impl<'a> Clone for Tree<'a>

Source§

fn clone(&self) -> Tree<'a>

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<'a> Debug for Tree<'a>

Source§

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

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

impl<'a> Hash for Tree<'a>

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<'a> PartialEq for Tree<'a>

Source§

fn eq(&self, other: &Tree<'a>) -> 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<'a> RenderCss for Tree<'a>

Source§

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

Source§

fn as_css_string(&self) -> String

Render self as a valid CSS String, minified (with non-interpretation-impacting whitespace removed).
Source§

impl<'a> Eq for Tree<'a>

Source§

impl<'a> StructuralPartialEq for Tree<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Tree<'a>

§

impl<'a> RefUnwindSafe for Tree<'a>

§

impl<'a> Send for Tree<'a>

§

impl<'a> Sync for Tree<'a>

§

impl<'a> Unpin for Tree<'a>

§

impl<'a> UnwindSafe for Tree<'a>

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> 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.