Struct GridElem

Source
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 background
  • align to change how cells are aligned
  • inset to optionally add internal padding to each cell
  • stroke 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

Source

pub fn new(children: Vec<GridChild>) -> Self

Create a new instance of the element.

Source

pub fn with_columns(self, columns: TrackSizings) -> Self

Builder-style setter for the columns field.

Source

pub fn with_rows(self, rows: TrackSizings) -> Self

Builder-style setter for the rows field.

Source

pub fn with_column_gutter(self, column_gutter: TrackSizings) -> Self

Builder-style setter for the column-gutter field.

Source

pub fn with_row_gutter(self, row_gutter: TrackSizings) -> Self

Builder-style setter for the row-gutter field.

Source

pub fn with_fill(self, fill: Celled<Option<Paint>>) -> Self

Builder-style setter for the fill field.

Source

pub fn with_align(self, align: Celled<Smart<Alignment>>) -> Self

Builder-style setter for the align field.

Source

pub fn with_stroke( self, stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>, ) -> Self

Builder-style setter for the stroke field.

Source

pub fn with_inset(self, inset: Celled<Sides<Option<Rel<Length>>>>) -> Self

Builder-style setter for the inset field.

Source

pub fn push_columns(&mut self, columns: TrackSizings)

Setter for the columns field.

Source

pub fn push_rows(&mut self, rows: TrackSizings)

Setter for the rows field.

Source

pub fn push_column_gutter(&mut self, column_gutter: TrackSizings)

Setter for the column-gutter field.

Source

pub fn push_row_gutter(&mut self, row_gutter: TrackSizings)

Setter for the row-gutter field.

Source

pub fn push_fill(&mut self, fill: Celled<Option<Paint>>)

Setter for the fill field.

Source

pub fn push_align(&mut self, align: Celled<Smart<Alignment>>)

Setter for the align field.

Source

pub fn push_stroke( &mut self, stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>, )

Setter for the stroke field.

Source

pub fn push_inset(&mut self, inset: Celled<Sides<Option<Rel<Length>>>>)

Setter for the inset field.

Source

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.

Source

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.

Source

pub fn column_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings

The gaps between columns.

Source

pub fn row_gutter<'a>(&'a self, styles: StyleChain<'a>) -> &'a TrackSizings

The gaps between rows.

Source

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],
)
Source

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.

Source

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],
  ),
)
Source

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.

Source

pub fn columns_in(styles: StyleChain<'_>) -> &TrackSizings

Access the columns field in the given style chain.

Source

pub fn rows_in(styles: StyleChain<'_>) -> &TrackSizings

Access the rows field in the given style chain.

Source

pub fn column_gutter_in(styles: StyleChain<'_>) -> &TrackSizings

Access the column-gutter field in the given style chain.

Source

pub fn row_gutter_in(styles: StyleChain<'_>) -> &TrackSizings

Access the row-gutter field in the given style chain.

Source

pub fn fill_in(styles: StyleChain<'_>) -> &Celled<Option<Paint>>

Access the fill field in the given style chain.

Source

pub fn align_in(styles: StyleChain<'_>) -> &Celled<Smart<Alignment>>

Access the align field in the given style chain.

Source

pub fn stroke_in( styles: StyleChain<'_>, ) -> <Celled<Sides<Option<Option<Arc<Stroke>>>>> as Resolve>::Output

Access the stroke field in the given style chain.

Source

pub fn inset_in(styles: StyleChain<'_>) -> Celled<Sides<Option<Rel<Length>>>>

Access the inset field in the given style chain.

Source

pub fn set_columns(columns: TrackSizings) -> Property

Create a style property for the columns field.

Source

pub fn set_rows(rows: TrackSizings) -> Property

Create a style property for the rows field.

Source

pub fn set_column_gutter(column_gutter: TrackSizings) -> Property

Create a style property for the column-gutter field.

Source

pub fn set_row_gutter(row_gutter: TrackSizings) -> Property

Create a style property for the row-gutter field.

Source

pub fn set_fill(fill: Celled<Option<Paint>>) -> Property

Create a style property for the fill field.

Source

pub fn set_align(align: Celled<Smart<Alignment>>) -> Property

Create a style property for the align field.

Source

pub fn set_stroke( stroke: Celled<Sides<Option<Option<Arc<Stroke>>>>>, ) -> Property

Create a style property for the stroke field.

Source

pub fn set_inset(inset: Celled<Sides<Option<Rel<Length>>>>) -> Property

Create a style property for the inset field.

Trait Implementations§

Source§

impl Capable for GridElem

Source§

fn vtable(capability: TypeId) -> Option<NonNull<()>>

Get the pointer to the vtable for the given capability / trait.
Source§

impl Clone for GridElem

Source§

fn clone(&self) -> GridElem

Returns a copy 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 Construct for GridElem

Source§

fn construct(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Content>

Construct an element from the arguments. Read more
Source§

impl Debug for GridElem

Source§

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

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

impl Fields for GridElem

Source§

type Enum = Fields

An enum with the fields of the element.
Source§

fn has(&self, id: u8) -> bool

Whether the element has the given field set.
Source§

fn field(&self, id: u8) -> Result<Value, FieldAccessError>

Get the field with the given field ID.
Source§

fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID in the presence of styles.
Source§

fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID from the styles.
Source§

fn materialize(&mut self, styles: StyleChain<'_>)

Resolve all fields with the styles and save them in-place.
Source§

fn fields(&self) -> Dict

Get the fields of the element.
Source§

impl Hash for GridElem

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoValue for GridElem

Source§

fn into_value(self) -> Value

Cast this type into a value.
Source§

impl NativeElement for GridElem

Source§

fn data() -> &'static NativeElementData

Get the element data for the native Rust element.
Source§

fn elem() -> Element
where Self: Sized,

Get the element for the native Rust element.
Source§

fn pack(self) -> Content
where Self: Sized,

Pack the element into type-erased content.
Source§

impl NativeScope for GridElem

Source§

fn constructor() -> Option<&'static NativeFuncData>

The constructor function for the type, if any.
Source§

fn scope() -> Scope

Get the associated scope for the type.
Source§

impl PartialEq for GridElem

Source§

fn eq(&self, other: &Self) -> 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 Repr for GridElem

Source§

fn repr(&self) -> EcoString

Return the debug representation of the value.
Source§

impl Set for GridElem

Source§

fn set(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Styles>

Parse relevant arguments into style properties for this element.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where 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) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
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, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> IntoResult for T
where T: IntoValue,

Source§

fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>

Cast this type into a value.
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. 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.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T
where T: Send + Sync,