Struct CompactLength

Source
#[repr(transparent)]
pub struct CompactLength(CompactLengthInner);
Expand description

A representation of a length as a compact 64-bit tagged pointer

Tuple Fields§

§0: CompactLengthInner

Implementations§

Source§

impl CompactLength

Source

pub const CALC_TAG: usize = 0usize

The tag indicating a calc() value

Source

pub const LENGTH_TAG: usize = 1usize

The tag indicating a length value

Source

pub const PERCENT_TAG: usize = 2usize

The tag indicating a percentage value

Source

pub const AUTO_TAG: usize = 3usize

The tag indicating an auto value

Source

pub const FR_TAG: usize = 4usize

The tag indicating an fr value

Source

pub const MIN_CONTENT_TAG: usize = 7usize

The tag indicating a min-content value

Source

pub const MAX_CONTENT_TAG: usize = 15usize

The tag indicating a max-content value

Source

pub const FIT_CONTENT_PX_TAG: usize = 23usize

The tag indicating a fit-content value with px limit

Source

pub const FIT_CONTENT_PERCENT_TAG: usize = 31usize

The tag indicating a fit-content value with percent limit

Source§

impl CompactLength

Source

pub const fn length(val: f32) -> Self

An absolute length in some abstract units. Users of Taffy may define what they correspond to in their application (pixels, logical pixels, mm, etc) as they see fit.

Source

pub const fn percent(val: f32) -> Self

A percentage length relative to the size of the containing block.

NOTE: percentages are represented as a f32 value in the range [0.0, 1.0] NOT the range [0.0, 100.0]

Source

pub fn calc(ptr: *const ()) -> Self

A calc() value. The value passed here is treated as an opaque handle to the actual calc representation and may be a pointer, index, etc.

The low 3 bits are used as a tag value and will be returned as 0.

Source

pub const fn auto() -> Self

The dimension should be automatically computed according to algorithm-specific rules regarding the default size of boxes.

Source

pub const fn fr(val: f32) -> Self

The dimension as a fraction of the total available grid space (fr units in CSS) Specified value is the numerator of the fraction. Denominator is the sum of all fraction specified in that grid dimension Spec: https://www.w3.org/TR/css3-grid-layout/#fr-unit

Source

pub const fn min_content() -> Self

The size should be the “min-content” size. This is the smallest size that can fit the item’s contents with ALL soft line-wrapping opportunities taken

Source

pub const fn max_content() -> Self

The size should be the “max-content” size. This is the smallest size that can fit the item’s contents with NO soft line-wrapping opportunities taken

Source

pub const fn fit_content_px(limit: f32) -> Self

The size should be computed according to the “fit content” formula: max(min_content, min(max_content, limit)) where:

  • min_content is the min-content size
  • max_content is the max-content size
  • limit is a LENGTH value passed to this function

The effect of this is that the item takes the size of limit clamped by the min-content and max-content sizes.

Source

pub const fn fit_content_percent(limit: f32) -> Self

The size should be computed according to the “fit content” formula: max(min_content, min(max_content, limit)) where:

  • min_content is the min-content size
  • max_content is the max-content size
  • limit is a PERCENTAGE value passed to this function

The effect of this is that the item takes the size of limit clamped by the min-content and max-content sizes.

Source

pub fn tag(self) -> usize

Get the primary tag

Source

pub fn value(self) -> f32

Get the numeric value associated with the CompactLength (e.g. the pixel value for a LENGTH variant)

Source

pub fn calc_value(self) -> *const ()

Get the calc pointer of the CompactLength

Source

pub fn is_calc(self) -> bool

Returns true if the value is 0 px

Source

pub fn is_zero(self) -> bool

Returns true if the value is 0 px

Source

pub fn is_length_or_percentage(self) -> bool

Returns true if the value is a length or percentage value

Source

pub fn is_auto(self) -> bool

Returns true if the value is auto

Source

pub fn is_min_content(self) -> bool

Returns true if the value is min-content

Source

pub fn is_max_content(self) -> bool

Returns true if the value is max-content

Source

pub fn is_fit_content(self) -> bool

Returns true if the value is a fit-content(…) value

Source

pub fn is_max_or_fit_content(self) -> bool

Returns true if the value is max-content or a fit-content(…) value

Source

pub fn is_max_content_alike(&self) -> bool

Returns true if the max track sizing function is MaxContent, FitContent or Auto else false. “In all cases, treat auto and fit-content() as max-content, except where specified otherwise for fit-content().” See: https://www.w3.org/TR/css-grid-1/#algo-terms

Source

pub fn is_min_or_max_content(&self) -> bool

Returns true if the min track sizing function is MinContent or MaxContent, else false.

Source

pub fn is_intrinsic(self) -> bool

Returns true if the value is auto, min-content, max-content, or fit-content(…)

Source

pub fn is_fr(self) -> bool

Returns true if the value is and fr value

Source

pub fn uses_percentage(self) -> bool

Whether the track sizing functions depends on the size of the parent node

Source

pub fn resolved_percentage_size( self, parent_size: f32, calc_resolver: impl Fn(*const (), f32) -> f32, ) -> Option<f32>

Resolve percentage values against the passed parent_size, returning Some(value) Non-percentage values always return None.

Trait Implementations§

Source§

impl Clone for CompactLength

Source§

fn clone(&self) -> CompactLength

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 Debug for CompactLength

Source§

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

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

impl FromFr for CompactLength

Source§

fn from_fr<Input: Into<f32> + Copy>(value: Input) -> Self

Converts into an Into<f32> into Self
Source§

impl FromLength for CompactLength

Source§

fn from_length<Input: Into<f32> + Copy>(value: Input) -> Self

Converts into an Into<f32> into Self
Source§

impl FromPercent for CompactLength

Source§

fn from_percent<Input: Into<f32> + Copy>(value: Input) -> Self

Converts into an Into<f32> into Self
Source§

impl PartialEq for CompactLength

Source§

fn eq(&self, other: &CompactLength) -> 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 TaffyAuto for CompactLength

Source§

const AUTO: Self

The auto value for type implementing TaffyAuto
Source§

impl TaffyFitContent for CompactLength

Source§

fn fit_content(lp: LengthPercentage) -> Self

Converts a LengthPercentage into Self
Source§

impl TaffyMaxContent for CompactLength

Source§

const MAX_CONTENT: Self

The max_content value for type implementing TaffyZero
Source§

impl TaffyMinContent for CompactLength

Source§

const MIN_CONTENT: Self

The min_content value for type implementing TaffyZero
Source§

impl TaffyZero for CompactLength

Source§

const ZERO: Self

The zero value for type implementing TaffyZero
Source§

impl Copy for CompactLength

Source§

impl StructuralPartialEq for CompactLength

Auto Trait Implementations§

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.