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:
fillto give all cells a backgroundalignto change how cells are alignedinsetto optionally add internal padding to each cellstroketo 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