pub struct Dimension(pub(crate) CompactLength);Expand description
Tuple Fields§
§0: CompactLengthImplementations§
Source§impl Dimension
impl Dimension
Sourcepub const fn length(val: f32) -> Self
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.
Sourcepub const fn percent(val: f32) -> Self
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]
Sourcepub const fn auto() -> Self
pub const fn auto() -> Self
The dimension should be automatically computed according to algorithm-specific rules regarding the default size of boxes.
Sourcepub const fn min_content() -> Self
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
Sourcepub const fn max_content() -> Self
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
Sourcepub const fn fit_content() -> Self
pub const fn fit_content() -> Self
The size should be computed according to the “fit content” formula:
max(min_content, min(max_content, stretch))
where stretch is the size the box would take if it filled the available space
Sourcepub const fn fit_content_px(limit: f32) -> Self
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 limit is a LENGTH value
Sourcepub const fn stretch() -> Self
pub const fn stretch() -> Self
The size should be the “stretch-fit” size: the size the box would take if it filled the available space (https://www.w3.org/TR/css-sizing-4/#stretch-fit-sizing)
Sourcepub const fn content() -> Self
pub const fn content() -> Self
The size should be an automatic size based on the box’s content (https://www.w3.org/TR/css-flexbox-1/#valdef-flex-basis-content)
This keyword is only valid for flex-basis. In any other context it behaves as auto.
Sourcepub const fn fit_content_percent(limit: f32) -> Self
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 limit is a PERCENTAGE value
Sourcepub fn calc(ptr: *const ()) -> Self
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.
Sourcepub const unsafe fn from_raw(val: CompactLength) -> Self
pub const unsafe fn from_raw(val: CompactLength) -> Self
Create a LengthPercentageAuto from a raw CompactLength.
§Safety
CompactLength must represent a valid variant for LengthPercentageAuto
Sourcepub const fn into_raw(self) -> CompactLength
pub const fn into_raw(self) -> CompactLength
Get the underlying CompactLength representation of the value
Sourcepub fn into_option(self) -> Option<f32>
pub fn into_option(self) -> Option<f32>
Get Length value if value is Length variant
Sourcepub fn is_sizing_keyword(self) -> bool
pub fn is_sizing_keyword(self) -> bool
Returns true if value is min-content, max-content, fit-content, fit-content(…), or stretch
Sourcepub fn is_stretch(self) -> bool
pub fn is_stretch(self) -> bool
Returns true if value is the stretch keyword
Sourcepub fn is_content(self) -> bool
pub fn is_content(self) -> bool
Returns true if value is the content keyword
Sourcepub fn value(self) -> f32
pub fn value(self) -> f32
Get the raw CompactLength value for non-calc variants that have a numeric parameter
Sourcepub fn expand(self) -> ExpandedDimension
pub fn expand(self) -> ExpandedDimension
Expand the compact representation into an ExpandedDimension enum.
This is useful when integrating with other libraries (e.g. for style inspection or
serialization) as it allows the value to be pattern-matched without having to work
with the raw CompactLength tagged-pointer representation directly.