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<'de, V> Deserialize<'de> for Calc<V>where
V: Deserialize<'de>,
Available on crate feature serde only.
impl<'de, V> Deserialize<'de> for Calc<V>where
V: Deserialize<'de>,
Available on crate feature
serde only.Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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<D> From<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>
impl<D> From<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>
Source§fn from(calc: Calc<DimensionPercentage<D>>) -> DimensionPercentage<D>
fn from(calc: Calc<DimensionPercentage<D>>) -> DimensionPercentage<D>
Converts to this type from the input type.
Source§impl<D> Into<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>
impl<D> Into<Calc<DimensionPercentage<D>>> for DimensionPercentage<D>
Source§fn into(self) -> Calc<DimensionPercentage<D>>
fn into(self) -> Calc<DimensionPercentage<D>>
Converts this type into the (usually inferred) input type.
Source§impl Into<Calc<Percentage>> for Percentage
impl Into<Calc<Percentage>> for Percentage
Source§fn into(self) -> Calc<Percentage>
fn into(self) -> Calc<Percentage>
Converts this type into the (usually inferred) input type.
Source§impl<'any, V> IntoOwned<'any> for Calc<V>where
V: IntoOwned<'any>,
Available on crate feature into_owned only.
impl<'any, V> IntoOwned<'any> for Calc<V>where
V: IntoOwned<'any>,
Available on crate feature
into_owned only.Source§impl<V: IsCompatible> IsCompatible for Calc<V>
impl<V: IsCompatible> IsCompatible for Calc<V>
Source§fn is_compatible(&self, browsers: Browsers) -> bool
fn is_compatible(&self, browsers: Browsers) -> bool
Returns whether the value is compatible with all of the given browser targets.
Source§impl<V: JsonSchema> JsonSchema for Calc<V>
Available on crate feature jsonschema only.
impl<V: JsonSchema> JsonSchema for Calc<V>
Available on crate feature
jsonschema only.Source§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
Source§fn schema_id() -> Cow<'static, str>
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
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref keyword. Read moreSource§impl<'i, V: Parse<'i> + Mul<f32, Output = V> + AddInternal + TryOp + TryMap + TrySign + PartialOrd<V> + Into<Calc<V>> + TryFrom<Calc<V>> + TryFrom<Angle> + TryInto<Angle> + Clone + Debug> Parse<'i> for Calc<V>
impl<'i, V: Parse<'i> + Mul<f32, Output = V> + AddInternal + TryOp + TryMap + TrySign + PartialOrd<V> + Into<Calc<V>> + TryFrom<Calc<V>> + TryFrom<Angle> + TryInto<Angle> + Clone + Debug> Parse<'i> for Calc<V>
Source§fn parse<'t>(
input: &mut Parser<'i, 't>,
) -> Result<Self, ParseError<'i, ParserError<'i>>>
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>>>
fn parse_string(input: &'i str) -> Result<Self, ParseError<'i, ParserError<'i>>>
Parse a value from a string. Read more
impl<V: PartialEq> StructuralPartialEq for Calc<V>
Source§impl<V: ToCss + Mul<f32, Output = V> + TrySign + Clone + Debug> ToCss for Calc<V>
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,
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>
fn to_css_string( &self, options: PrinterOptions<'_>, ) -> Result<String, PrinterError>
Serialize
self in CSS syntax and return a string. Read moreSource§impl TryFrom<Calc<Percentage>> for Percentage
impl TryFrom<Calc<Percentage>> for Percentage
Source§impl<V: TrySign> TrySign for Calc<V>
impl<V: TrySign> TrySign for Calc<V>
Source§fn is_sign_positive(&self) -> bool
fn is_sign_positive(&self) -> bool
Returns whether the value is positive. If not possible, returns false.
Source§fn is_sign_negative(&self) -> bool
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: ?Sized + Visitor<'i, __T>> Visit<'i, __T, __V> for Calc<V>where
V: Visit<'i, __T, __V>,
Available on crate feature visitor only.
impl<'i, V, __T: Visit<'i, __T, __V>, __V: ?Sized + Visitor<'i, __T>> Visit<'i, __T, __V> for Calc<V>where
V: Visit<'i, __T, __V>,
Available on crate feature
visitor only.Source§const CHILD_TYPES: VisitTypes
const CHILD_TYPES: VisitTypes
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.
Auto Trait Implementations§
impl<V> Freeze for Calc<V>
impl<V> RefUnwindSafe for Calc<V>
impl<V> Send for Calc<V>
impl<V> Sync for Calc<V>
impl<V> Unpin for Calc<V>
impl<V> UnsafeUnpin for Calc<V>
impl<V> UnwindSafe for Calc<V>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.Source§impl<'i, T> ParseWithOptions<'i> for Twhere
T: Parse<'i>,
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>>>
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>>>
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.