pub enum Calc<V> {
    Value(Box<V>),
    Number(CSSNumber),
    Sum(Box<Calc<V>>, Box<Calc<V>>),
    Product(CSSNumber, Box<Calc<V>>),
    Function(Box<MathFunction<V>>),
}
Expand description

A mathematical expression used within the calc() function.

This type supports generic value types. Values such as Length, Percentage, Time, and Angle support calc() expressions.

Variants§

§

Value(Box<V>)

A literal value.

§

Number(CSSNumber)

A literal number.

§

Sum(Box<Calc<V>>, Box<Calc<V>>)

A sum of two calc expressions.

§

Product(CSSNumber, Box<Calc<V>>)

A product of a number and another calc expression.

§

Function(Box<MathFunction<V>>)

A math function, such as calc(), min(), or max().

Trait Implementations§

source§

impl<V: Clone> Clone for Calc<V>

source§

fn clone(&self) -> Calc<V>

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<V: Debug> Debug for Calc<V>

source§

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

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

impl<'de, V> Deserialize<'de> for Calc<V>where V: Deserialize<'de>,

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 From<Calc<Angle>> for Angle

source§

fn from(calc: Calc<Angle>) -> Angle

Converts to this type from the input type.
source§

impl<D> From<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>

source§

fn from(calc: Calc<DimensionPercentage<D>>) -> DimensionPercentage<D>

Converts to this type from the input type.
source§

impl From<Calc<Length>> for Length

source§

fn from(calc: Calc<Length>) -> Length

Converts to this type from the input type.
source§

impl From<Calc<Percentage>> for Percentage

source§

fn from(calc: Calc<Percentage>) -> Percentage

Converts to this type from the input type.
source§

impl From<Calc<Time>> for Time

source§

fn from(calc: Calc<Time>) -> Time

Converts to this type from the input type.
source§

impl From<Calc<f32>> for CSSNumber

source§

fn from(calc: Calc<CSSNumber>) -> CSSNumber

Converts to this type from the input type.
source§

impl Into<Calc<Angle>> for Angle

source§

fn into(self) -> Calc<Angle>

Converts this type into the (usually inferred) input type.
source§

impl<D> Into<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>

source§

fn into(self) -> Calc<DimensionPercentage<D>>

Converts this type into the (usually inferred) input type.
source§

impl Into<Calc<Length>> for Length

source§

fn into(self) -> Calc<Length>

Converts this type into the (usually inferred) input type.
source§

impl Into<Calc<Percentage>> for Percentage

source§

fn into(self) -> Calc<Percentage>

Converts this type into the (usually inferred) input type.
source§

impl Into<Calc<Time>> for Time

source§

fn into(self) -> Calc<Time>

Converts this type into the (usually inferred) input type.
source§

impl Into<Calc<f32>> for CSSNumber

source§

fn into(self) -> Calc<CSSNumber>

Converts this type into the (usually inferred) input type.
source§

impl<V: JsonSchema> JsonSchema for Calc<V>

source§

fn schema_name() -> String

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

fn json_schema(gen: &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<V: Mul<f32, Output = V>> Mul<f32> for Calc<V>

§

type Output = Calc<V>

The resulting type after applying the * operator.
source§

fn mul(self, other: f32) -> Self

Performs the * operation. Read more
source§

impl<'i, V: Parse<'i> + Mul<f32, Output = V> + AddInternal + TryOp + TryMap + TrySign + PartialOrd<V> + Into<Calc<V>> + From<Calc<V>> + TryFrom<Angle> + Clone + Debug> Parse<'i> for Calc<V>

source§

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

Parse a value of this type using an existing parser.
source§

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

Parse a value from a string. Read more
source§

impl<V: PartialEq> PartialEq<Calc<V>> for Calc<V>

source§

fn eq(&self, other: &Calc<V>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<V> Serialize for Calc<V>where V: Serialize,

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<V: ToCss + Mul<f32, Output = V> + TrySign + Clone + Debug> ToCss for Calc<V>

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<V: TrySign> TrySign for Calc<V>

source§

fn try_sign(&self) -> Option<f32>

Returns the sign of the value, if possible.
source§

fn is_sign_positive(&self) -> bool

Returns whether the value is positive. If not possible, returns false.
source§

fn is_sign_negative(&self) -> bool

Returns whether the value is negative. If not possible, returns false.
source§

impl<'i, V, __T: Visit<'i, __T, __V>, __V: Visitor<'i, __T>> Visit<'i, __T, __V> for Calc<V>where V: Visit<'i, __T, __V>,

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_children(&mut self, visitor: &mut __V) -> Result<(), __V::Error>

Available on crate feature visitor only.
Visit the children of this value.
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§

impl<V> StructuralPartialEq for Calc<V>

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for Calc<V>where V: RefUnwindSafe,

§

impl<V> Send for Calc<V>where V: Send,

§

impl<V> Sync for Calc<V>where V: Sync,

§

impl<V> Unpin for Calc<V>

§

impl<V> UnwindSafe for Calc<V>where V: UnwindSafe,

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

§

type ArchivedMetadata = ()

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

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

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

§

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

Deserializes using the given deserializer
source§

impl<T> DynClone for Twhere T: Clone,

source§

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

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<'i, T> ParseWithOptions<'i> for Twhere T: Parse<'i>,

source§

fn parse_with_options<'t>( input: &mut Parser<'i, 't>, _options: &ParserOptions<'_, '_> ) -> Result<T, ParseError<'i, ParserError<'i>>>

Parse a value of this type with the given options.
source§

fn parse_string_with_options( input: &'i str, options: ParserOptions<'_, 'i> ) -> Result<Self, ParseError<'i, ParserError<'i>>>

Parse a value from a string with the given options.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Pointee for T

§

type Metadata = ()

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

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