pub struct GridElem {
pub children: Vec<GridChild>,
/* private fields */
}
Expand description
Arranges content in a grid.
The grid element allows you to arrange content in a grid. You can define the number of rows and columns, as well as the size of the gutters between them. There are multiple sizing modes for columns and rows that can be used to create complex layouts.
While the grid and table elements work very similarly, they are intended for
different use cases and carry different semantics. The grid element is
intended for presentational and layout purposes, while the
{table}
element is intended for, in broad terms, presenting
multiple related data points. In the future, Typst will annotate its output
such that screenreaders will announce content in table
as tabular while a
grid’s content will be announced no different than multiple content blocks
in the document flow. Set and show rules on one of these elements do not
affect the other.
A grid’s sizing is determined by the track sizes specified in the arguments. Because each of the sizing parameters accepts the same values, we will explain them just once, here. Each sizing argument accepts an array of individual track sizes. A track size is either:
-
{auto}
: The track will be sized to fit its contents. It will be at most as large as the remaining space. If there is more than one{auto}
track width, and together they claim more than the available space, the{auto}
tracks will fairly distribute the available space among themselves. -
A fixed or relative length (e.g.
{10pt}
or{20% - 1cm}
): The track will be exactly of this size. -
A fractional length (e.g.
{1fr}
): Once all other tracks have been sized, the remaining space will be divided among the fractional tracks according to their fractions. For example, if there are two fractional tracks, each with a fraction of{1fr}
, they will each take up half of the remaining space.
To specify a single track, the array can be omitted in favor of a single
value. To specify multiple {auto}
tracks, enter the number of tracks
instead of an array. For example, columns:
{3}
is equivalent to
columns:
{(auto, auto, auto)}
.
§Examples
The example below demonstrates the different track sizing options. It also
shows how you can use grid.cell
to make an individual cell
span two grid tracks.
// We use `rect` to emphasize the
// area of cells.
#set rect(
inset: 8pt,
fill: rgb("e4e5ea"),
width: 100%,
)
#grid(
columns: (60pt, 1fr, 2fr),
rows: (auto, 60pt),
gutter: 3pt,
rect[Fixed width, auto height],
rect[1/3 of the remains],
rect[2/3 of the remains],
rect(height: 100%)[Fixed height],
grid.cell(
colspan: 2,
image("tiger.jpg", width: 100%),
),
)
You can also spread an array of strings or content into a grid to populate its cells.
#grid(
columns: 5,
gutter: 5pt,
..range(25).map(str)
)
§Styling the grid
The grid’s appearance can be customized through different parameters. These are the most important ones:
fill
to give all cells a backgroundalign
to change how cells are alignedinset
to optionally add internal padding to each cellstroke
to optionally enable grid lines with a certain stroke
If you need to override one of the above options for a single cell, you can
use the grid.cell
element. Likewise, you can override
individual grid lines with the grid.hline
and
grid.vline
elements.
Alternatively, if you need the appearance options to depend on a cell’s
position (column and row), you may specify a function to fill
or align
of the form (column, row) => value
. You may also use a show rule on
grid.cell
- see that element’s examples or the examples
below for more information.
Locating most of your styling in set and show rules is recommended, as it keeps the grid’s or table’s actual usages clean and easy to read. It also allows you to easily change the grid’s appearance in one place.
§Stroke styling precedence
There are three ways to set the stroke of a grid cell: through
{grid.cell}
’s stroke
field, by using
{grid.hline}
and {grid.vline}
, or by
setting the {grid}
’s stroke
field. When multiple of
these settings are present and conflict, the hline
and vline
settings
take the highest precedence, followed by the cell
settings, and finally
the grid
settings.
Furthermore, strokes of a repeated grid header or footer will take precedence over regular cell strokes.
Fields§
§children: Vec<GridChild>
Implementations§
Source§impl GridElem
impl GridElem
Sourcepub fn with_columns(self, columns: TrackSizings) -> Self
pub fn with_columns(self, columns: TrackSizings) -> Self
Builder-style setter for the columns
field.
Sourcepub fn with_rows(self, rows: TrackSizings) -> Self
pub fn with_rows(self, rows: TrackSizings) -> Self
Builder-style setter for the rows
field.
Sourcepub fn with_column_gutter(self, column_gutter: TrackSizings) -> Self
pub fn with_column_gutter(self, column_gutter: TrackSizings) -> Self
Builder-style setter for the column-gutter
field.
Sourcepub fn with_row_gutter(self, row_gutter: TrackSizings) -> Self
pub fn with_row_gutter(self, row_gutter: TrackSizings) -> Self
Builder-style setter for the row-gutter
field.
Sourcepub fn with_fill(self, fill: Celled<Option<Paint>>) -> Self
pub fn with_fill(self, fill: Celled<Option<Paint>>) -> Self
Builder-style setter for the fill
field.
Sourcepub fn with_align(self, align: Celled<Smart<Alignment>>) -> Self
pub fn with_align(self, align: Celled<Smart<Alignment>>) -> Self
Builder-style setter for the align
field.
Sourcepub fn with_stroke(
self,
stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>,
) -> Self
pub fn with_stroke( self, stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>, ) -> Self
Builder-style setter for the stroke
field.
Sourcepub fn with_inset(self, inset: Celled<Sides<Option<Rel<Length>>>>) -> Self
pub fn with_inset(self, inset: Celled<Sides<Option<Rel<Length>>>>) -> Self
Builder-style setter for the inset
field.
Sourcepub fn push_columns(&mut self, columns: TrackSizings)
pub fn push_columns(&mut self, columns: TrackSizings)
Setter for the columns
field.
Sourcepub fn push_rows(&mut self, rows: TrackSizings)
pub fn push_rows(&mut self, rows: TrackSizings)
Setter for the rows
field.
Sourcepub fn push_column_gutter(&mut self, column_gutter: TrackSizings)
pub fn push_column_gutter(&mut self, column_gutter: TrackSizings)
Setter for the column-gutter
field.
Sourcepub fn push_row_gutter(&mut self, row_gutter: TrackSizings)
pub fn push_row_gutter(&mut self, row_gutter: TrackSizings)
Setter for the row-gutter
field.
Sourcepub fn push_stroke(
&mut self,
stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>,
)
pub fn push_stroke( &mut self, stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>, )
Setter for the stroke
field.
Sourcepub fn push_inset(&mut self, inset: Celled<Sides<Option<Rel<Length>>>>)
pub fn push_inset(&mut self, inset: Celled<Sides<Option<Rel<Length>>>>)
Setter for the inset
field.
Sourcepub fn columns<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
pub fn columns<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
The column sizes.
Either specify a track size array or provide an integer to create a grid
with that many {auto}
-sized columns. Note that opposed to rows and
gutters, providing a single track size will only ever create a single
column.
Sourcepub fn rows<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
pub fn rows<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
The row sizes.
If there are more cells than fit the defined rows, the last row is repeated until there are no more cells.
Sourcepub fn column_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
pub fn column_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
The gaps between columns.
Sourcepub fn row_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
pub fn row_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings
The gaps between rows.
Sourcepub fn fill<'a>(&'a self, styles: StyleChain<'a>) -> &'a Celled<Option<Paint>>
pub fn fill<'a>(&'a self, styles: StyleChain<'a>) -> &'a Celled<Option<Paint>>
How to fill the cells.
This can be a color or a function that returns a color. The function receives the cells’ column and row indices, starting from zero. This can be used to implement striped grids.
#grid(
fill: (x, y) =>
if calc.even(x + y) { luma(230) }
else { white },
align: center + horizon,
columns: 4,
inset: 2pt,
[X], [O], [X], [O],
[O], [X], [O], [X],
[X], [O], [X], [O],
[O], [X], [O], [X],
)
Sourcepub fn align<'a>(
&'a self,
styles: StyleChain<'a>,
) -> &'a Celled<Smart<Alignment>>
pub fn align<'a>( &'a self, styles: StyleChain<'a>, ) -> &'a Celled<Smart<Alignment>>
How to align the cells’ content.
This can either be a single alignment, an array of alignments
(corresponding to each column) or a function that returns an alignment.
The function receives the cells’ column and row indices, starting from
zero. If set to {auto}
, the outer alignment is used.
You can find an example for this argument at the
table.align
parameter.
Sourcepub fn stroke(
&self,
styles: StyleChain<'_>,
) -> <Celled<Sides<Option<Option<Arc<Stroke>>>>> as Resolve>::Output
pub fn stroke( &self, styles: StyleChain<'_>, ) -> <Celled<Sides<Option<Option<Arc<Stroke>>>>> as Resolve>::Output
How to stroke the cells.
Grids have no strokes by default, which can be changed by setting this option to the desired stroke.
If it is necessary to place lines which can cross spacing between cells
produced by the gutter
option, or to override the stroke between
multiple specific cells, consider specifying one or more of
grid.hline
and grid.vline
alongside
your grid cells.
#set page(height: 13em, width: 26em)
#let cv(..jobs) = grid(
columns: 2,
inset: 5pt,
stroke: (x, y) => if x == 0 and y > 0 {
(right: (
paint: luma(180),
thickness: 1.5pt,
dash: "dotted"
))
},
grid.header(grid.cell(colspan: 2)[
*Professional Experience*
#box(width: 1fr, line(length: 100%, stroke: luma(180)))
]),
..{
let last = none
for job in jobs.pos() {
(
if job.year != last [*#job.year*],
[
*#job.company* - #job.role _(#job.timeframe)_ \
#job.details
]
)
last = job.year
}
}
)
#cv(
(
year: 2012,
company: [Pear Seed & Co.],
role: [Lead Engineer],
timeframe: [Jul - Dec],
details: [
- Raised engineers from 3x to 10x
- Did a great job
],
),
(
year: 2012,
company: [Mega Corp.],
role: [VP of Sales],
timeframe: [Mar - Jun],
details: [- Closed tons of customers],
),
(
year: 2013,
company: [Tiny Co.],
role: [CEO],
timeframe: [Jan - Dec],
details: [- Delivered 4x more shareholder value],
),
(
year: 2014,
company: [Glorbocorp Ltd],
role: [CTO],
timeframe: [Jan - Mar],
details: [- Drove containerization forward],
),
)
Sourcepub fn inset(
&self,
styles: StyleChain<'_>,
) -> Celled<Sides<Option<Rel<Length>>>>
pub fn inset( &self, styles: StyleChain<'_>, ) -> Celled<Sides<Option<Rel<Length>>>>
How much to pad the cells’ content.
You can find an example for this argument at the
table.inset
parameter.
Sourcepub fn columns_in(styles: StyleChain<'_>) -> &TrackSizings
pub fn columns_in(styles: StyleChain<'_>) -> &TrackSizings
Access the columns
field in the given style chain.
Sourcepub fn rows_in(styles: StyleChain<'_>) -> &TrackSizings
pub fn rows_in(styles: StyleChain<'_>) -> &TrackSizings
Access the rows
field in the given style chain.
Sourcepub fn column_gutter_in(styles: StyleChain<'_>) -> &TrackSizings
pub fn column_gutter_in(styles: StyleChain<'_>) -> &TrackSizings
Access the column-gutter
field in the given style chain.
Sourcepub fn row_gutter_in(styles: StyleChain<'_>) -> &TrackSizings
pub fn row_gutter_in(styles: StyleChain<'_>) -> &TrackSizings
Access the row-gutter
field in the given style chain.
Sourcepub fn fill_in(styles: StyleChain<'_>) -> &Celled<Option<Paint>>
pub fn fill_in(styles: StyleChain<'_>) -> &Celled<Option<Paint>>
Access the fill
field in the given style chain.
Sourcepub fn align_in(styles: StyleChain<'_>) -> &Celled<Smart<Alignment>>
pub fn align_in(styles: StyleChain<'_>) -> &Celled<Smart<Alignment>>
Access the align
field in the given style chain.
Sourcepub fn stroke_in(
styles: StyleChain<'_>,
) -> <Celled<Sides<Option<Option<Arc<Stroke>>>>> as Resolve>::Output
pub fn stroke_in( styles: StyleChain<'_>, ) -> <Celled<Sides<Option<Option<Arc<Stroke>>>>> as Resolve>::Output
Access the stroke
field in the given style chain.
Sourcepub fn inset_in(styles: StyleChain<'_>) -> Celled<Sides<Option<Rel<Length>>>>
pub fn inset_in(styles: StyleChain<'_>) -> Celled<Sides<Option<Rel<Length>>>>
Access the inset
field in the given style chain.
Sourcepub fn set_columns(columns: TrackSizings) -> Property
pub fn set_columns(columns: TrackSizings) -> Property
Create a style property for the columns
field.
Sourcepub fn set_rows(rows: TrackSizings) -> Property
pub fn set_rows(rows: TrackSizings) -> Property
Create a style property for the rows
field.
Sourcepub fn set_column_gutter(column_gutter: TrackSizings) -> Property
pub fn set_column_gutter(column_gutter: TrackSizings) -> Property
Create a style property for the column-gutter
field.
Sourcepub fn set_row_gutter(row_gutter: TrackSizings) -> Property
pub fn set_row_gutter(row_gutter: TrackSizings) -> Property
Create a style property for the row-gutter
field.
Sourcepub fn set_fill(fill: Celled<Option<Paint>>) -> Property
pub fn set_fill(fill: Celled<Option<Paint>>) -> Property
Create a style property for the fill
field.
Sourcepub fn set_align(align: Celled<Smart<Alignment>>) -> Property
pub fn set_align(align: Celled<Smart<Alignment>>) -> Property
Create a style property for the align
field.
Trait Implementations§
Source§impl Fields for GridElem
impl Fields for GridElem
Source§fn field(&self, id: u8) -> Result<Value, FieldAccessError>
fn field(&self, id: u8) -> Result<Value, FieldAccessError>
Source§fn field_with_styles(
&self,
id: u8,
styles: StyleChain<'_>,
) -> Result<Value, FieldAccessError>
fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>
Source§fn field_from_styles(
id: u8,
styles: StyleChain<'_>,
) -> Result<Value, FieldAccessError>
fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>
Source§fn materialize(&mut self, styles: StyleChain<'_>)
fn materialize(&mut self, styles: StyleChain<'_>)
Source§impl NativeElement for GridElem
impl NativeElement for GridElem
Source§impl NativeScope for GridElem
impl NativeScope for GridElem
Source§fn constructor() -> Option<&'static NativeFuncData>
fn constructor() -> Option<&'static NativeFuncData>
Auto Trait Implementations§
impl Freeze for GridElem
impl !RefUnwindSafe for GridElem
impl Send for GridElem
impl Sync for GridElem
impl Unpin for GridElem
impl !UnwindSafe for GridElem
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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>
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>
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> IntoResult for Twhere
T: IntoValue,
impl<T> IntoResult for Twhere
T: IntoValue,
Source§fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more