Struct DeclarationBlock

Source
pub struct DeclarationBlock<'i> {
    pub important_declarations: Vec<Property<'i>>,
    pub declarations: Vec<Property<'i>>,
}
Expand description

A CSS declaration block.

Properties are separated into a list of !important declararations, and a list of normal declarations. This reduces memory usage compared with storing a boolean along with each property.

Fields§

§important_declarations: Vec<Property<'i>>

A list of !important declarations in the block.

§declarations: Vec<Property<'i>>

A list of normal declarations in the block.

Implementations§

Source§

impl<'i> DeclarationBlock<'i>

Source

pub fn parse<'a, 'o, 't>( input: &mut Parser<'i, 't>, options: &'a ParserOptions<'o, 'i>, ) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parses a declaration block from CSS syntax.

Source

pub fn parse_string<'o>( input: &'i str, options: ParserOptions<'o, 'i>, ) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parses a declaration block from a string.

Source

pub fn new() -> Self

Returns an empty declaration block.

Source

pub fn len(&self) -> usize

Returns the total number of declarations in the block.

Source§

impl<'i> DeclarationBlock<'i>

Source

pub fn to_css_block<W>( &self, dest: &mut Printer<'_, '_, '_, W>, ) -> Result<(), PrinterError>
where W: Write,

Writes the declarations to a CSS block, including starting and ending braces.

Source§

impl<'i> DeclarationBlock<'i>

Source

pub fn is_empty(&self) -> bool

Returns whether the declaration block is empty.

Source§

impl<'i> DeclarationBlock<'i>

Source

pub fn iter(&self) -> impl DoubleEndedIterator<Item = (&Property<'i>, bool)>

Returns an iterator over all properties in the declaration.

Source

pub fn iter_mut(&mut self) -> impl DoubleEndedIterator<Item = &mut Property<'i>>

Returns a mutable iterator over all properties in the declaration.

Source

pub fn get<'a>( &'a self, property_id: &PropertyId<'_>, ) -> Option<(Cow<'a, Property<'i>>, bool)>

Returns the value for a given property id based on the properties in this declaration block.

If the property is a shorthand, the result will be a combined value of all of the included longhands, or None if some of the longhands are not declared. Otherwise, the value will be either an explicitly declared longhand, or a value extracted from a shorthand property.

Source

pub fn set(&mut self, property: Property<'i>, important: bool)

Sets the value and importance for a given property, replacing any existing declarations.

If the property already exists within the declaration block, it is updated in place. Otherwise, a new declaration is appended. When updating a longhand property and a shorthand is defined which includes the longhand, the shorthand will be updated rather than appending a new declaration.

Source

pub fn remove(&mut self, property_id: &PropertyId<'_>)

Removes all declarations of the given property id from the declaration block.

When removing a longhand property and a shorthand is defined which includes the longhand, the shorthand will be split apart into its component longhand properties, minus the property to remove. When removing a shorthand, all included longhand properties are also removed.

Trait Implementations§

Source§

impl<'i> Clone for DeclarationBlock<'i>

Source§

fn clone(&self) -> DeclarationBlock<'i>

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<'i> Debug for DeclarationBlock<'i>

Source§

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

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

impl<'i> Default for DeclarationBlock<'i>

Source§

fn default() -> DeclarationBlock<'i>

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

impl<'de: 'i, 'i> Deserialize<'de> for DeclarationBlock<'i>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'any, 'i> IntoOwned<'any> for DeclarationBlock<'i>

Source§

fn into_owned(self) -> Self::Owned

Consumes the value and returns an owned clone.

Source§

type Owned = DeclarationBlock<'any>

A variant of Self with a new lifetime.
Source§

impl<'i> JsonSchema for DeclarationBlock<'i>

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl<'i> PartialEq for DeclarationBlock<'i>

Source§

fn eq(&self, other: &DeclarationBlock<'i>) -> 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<'i> Serialize for DeclarationBlock<'i>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'i> ToCss for DeclarationBlock<'i>

Source§

fn to_css<W>( &self, dest: &mut Printer<'_, '_, '_, W>, ) -> Result<(), PrinterError>
where W: Write,

Serialize self in CSS syntax, writing to dest.
Source§

fn to_css_string( &self, options: PrinterOptions<'_>, ) -> Result<String, PrinterError>

Serialize self in CSS syntax and return a string. Read more
Source§

impl<'i, __T: Visit<'i, __T, __V>, __V: ?Sized + Visitor<'i, __T>> Visit<'i, __T, __V> for DeclarationBlock<'i>

Source§

const CHILD_TYPES: VisitTypes

Available on crate feature visitor only.
The types of values contained within this value and its children. This is used to skip branches that don’t have any values requested by the Visitor.
Source§

fn visit(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visits the value by calling an appropriate method on the Visitor. If no corresponding visitor method exists, then the children are visited.
Source§

fn visit_children(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visit the children of this value.
Source§

impl<'i> StructuralPartialEq for DeclarationBlock<'i>

Auto Trait Implementations§

§

impl<'i> Freeze for DeclarationBlock<'i>

§

impl<'i> RefUnwindSafe for DeclarationBlock<'i>

§

impl<'i> Send for DeclarationBlock<'i>

§

impl<'i> Sync for DeclarationBlock<'i>

§

impl<'i> Unpin for DeclarationBlock<'i>

§

impl<'i> UnwindSafe for DeclarationBlock<'i>

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

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

Source§

fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,