Struct procss::ast::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 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<'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> 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).

Auto Trait Implementations§

§

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 Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for Twhere
    T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for Twhere
    T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync + 'static>

source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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 Twhere
    T: Clone,

§

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 Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.