pub struct Block<'a> { /* private fields */ }Expand description
A widget that renders borders, titles, and padding around other widgets.
A Block is a foundational widget that creates visual containers by drawing borders around an
area. It serves as a wrapper or frame for other widgets, providing structure and visual
separation in terminal UIs. Most built-in widgets in Ratatui use a pattern where they accept an
optional Block parameter that wraps the widget’s content.
When a widget renders with a block, the widget’s style is applied first, then the block’s style, and finally the widget’s content is rendered within the inner area calculated by the block. This layered approach allows for flexible styling where the block can provide background colors, borders, and padding while the inner widget handles its own content styling.
Multiple blocks can be nested within each other. The Block::inner method calculates the area
available for content after accounting for borders, titles, and padding, making it easy to nest
blocks or position widgets within a block’s boundaries.
§Constructor Methods
Block::new- Creates a block with no borders or paddingBlock::bordered- Creates a block with all borders enabled
§Border Configuration
Block::borders- Specifies which borders to displayBlock::border_style- Sets the style of the bordersBlock::border_type- Sets border symbols (single, double, thick, rounded, etc.)Block::border_set- Sets custom border symbols as aborder::SetBlock::merge_borders- Controls how borders merge with adjacent blocks
§Title Configuration
Block::title- Adds a title to the blockBlock::title_top- Adds a title to the top of the blockBlock::title_bottom- Adds a title to the bottom of the blockBlock::title_alignment- Sets default alignment for all titlesBlock::title_style- Sets the style for all titlesBlock::title_position- Sets default position for titles
§Styling and Layout
Block::style- Sets the base style of the blockBlock::padding- Adds internal padding within the bordersBlock::inner- Calculates the inner area available for content
§Title Behavior
You can add multiple titles to a block, and they will be rendered with spaces separating titles that share the same position or alignment. When both centered and non-centered titles exist, the centered space is calculated based on the full width of the block.
Titles are set using the .title, .title_top, and .title_bottom methods. These methods
accept a string or any type that can be converted into a Line, such as a string slice,
String, or a vector of Spans. To control the alignment of a title (left, center, right),
pass a Line with the desired alignment, e.g. Line::from("Title").centered().
By default, .title places the title at the top of the block, but you can use .title_top or
.title_bottom to explicitly set the position. The default alignment for all titles can be set
with Block::title_alignment, and the default position for all titles can be set with
Block::title_position.
Note that prior to v0.30.0, the block::Title struct was used to create titles. This struct
has been removed. The new recommended approach is to use Line with a specific alignment for
the title’s content and the Block::title_top and Block::title_bottom methods for
positioning.
Titles avoid being rendered in corners when borders are present, but will align to edges when no border exists on that side:
┌With at least a left border───
Without left border───§Nesting Widgets with inner
The Block::inner method computes the area inside the block after accounting for borders,
titles, and padding. This allows you to nest widgets inside a block by rendering the block
first, then rendering other widgets in the returned inner area.
For example, you can nest a block inside another block:
use ratatui::Frame;
use ratatui::widgets::Block;
let outer_block = Block::bordered().title("Outer");
let inner_block = Block::bordered().title("Inner");
let outer_area = frame.area();
let inner_area = outer_block.inner(outer_area);
frame.render_widget(outer_block, outer_area);
frame.render_widget(inner_block, inner_area);You can also use the standard Layout functionality to further subdivide the inner area and
lay out multiple widgets inside a block.
§Integration with Other Widgets
Most widgets in Ratatui accept a block parameter. For example, Paragraph, List,
Table, and other widgets can be wrapped with a block:
use ratatui::widgets::{Block, Paragraph};
let paragraph = Paragraph::new("Hello, world!").block(Block::bordered().title("My Paragraph"));This pattern allows widgets to focus on their content while blocks handle the visual framing.
§Styling
Styles are applied in a specific order: first the block’s base style, then border styles, then title styles, and finally any content widget styles. This layered approach allows for flexible styling where outer styles provide defaults that inner styles can override.
Block implements Stylize, allowing you to use style
shorthand methods:
use ratatui::style::Stylize;
use ratatui::widgets::Block;
let block = Block::bordered().red().on_white().bold();§Examples
Create a simple bordered block:
use ratatui::widgets::Block;
let block = Block::bordered().title("My Block");Create a block with custom border styling:
use ratatui::style::{Color, Style, Stylize};
use ratatui::widgets::{Block, BorderType};
let block = Block::bordered()
.title("Styled Block")
.border_type(BorderType::Rounded)
.border_style(Style::new().cyan())
.style(Style::new().on_black());Use a block to wrap another widget:
use ratatui::widgets::{Block, Paragraph};
let paragraph = Paragraph::new("Hello, world!").block(Block::bordered().title("Greeting"));Add multiple titles with different alignments:
use ratatui::text::Line;
use ratatui::widgets::Block;
let block = Block::bordered()
.title_top(Line::from("Left").left_aligned())
.title_top(Line::from("Center").centered())
.title_top(Line::from("Right").right_aligned())
.title_bottom("Status: OK");§See Also
- Block recipe - Visual examples and common patterns (on the ratatui website)
- Collapse borders recipe - Techniques for creating seamless layouts (on the ratatui website)
MergeStrategy- Controls how borders merge with adjacent elements
Implementations§
Source§impl<'a> Block<'a>
impl<'a> Block<'a>
Sourcepub const fn bordered() -> Block<'a>
pub const fn bordered() -> Block<'a>
Create a new block with all borders shown
use ratatui::widgets::{Block, Borders};
assert_eq!(Block::bordered(), Block::new().borders(Borders::ALL));Sourcepub fn title<T>(self, title: T) -> Block<'a>
pub fn title<T>(self, title: T) -> Block<'a>
Adds a title to the block using the default position.
The position of the title is determined by the title_position field of the block, which
defaults to Top. This can be changed using the Block::title_position method. For
explicit positioning, use Block::title_top or Block::title_bottom.
The title function allows you to add a title to the block. You can call this function
multiple times to add multiple titles.
Each title will be rendered with a single space separating titles that are in the same position or alignment. When both centered and non-centered titles are rendered, the centered space is calculated based on the full width of the block, rather than the leftover width.
You can provide any type that can be converted into Line including: strings, string
slices (&str), borrowed strings (Cow<str>), spans, or
vectors of spans (Vec<Span>).
By default, the titles will avoid being rendered in the corners of the block but will align against the left or right edge of the block if there is no border on that edge. The following demonstrates this behavior, notice the second title is one character off to the left.
┌With at least a left border───
Without left border───Note: If the block is too small and multiple titles overlap, the border might get cut off at a corner.
§Examples
See the Block example for a visual representation of how the various borders and styles look when rendered.
The following example demonstrates:
- Default title alignment
- Multiple titles (notice “Center” is centered according to the full with of the block, not the leftover space)
- Two titles with the same alignment (notice the left titles are separated)
use ratatui::text::Line;
use ratatui::widgets::Block;
Block::bordered()
.title("Title")
.title(Line::from("Left").left_aligned())
.title(Line::from("Right").right_aligned())
.title(Line::from("Center").centered());§See also
Titles attached to a block can have default behaviors. See
§History
In previous releases of Ratatui this method accepted Into<Title> instead of
Into<Line>. We found that storing the position in the block and the alignment in the
line better reflects the intended use of the block and its titles. See
https://github.com/ratatui/ratatui/issues/738 for more information.
Sourcepub fn title_top<T>(self, title: T) -> Block<'a>
pub fn title_top<T>(self, title: T) -> Block<'a>
Adds a title to the top of the block.
You can provide any type that can be converted into Line including: strings, string
slices (&str), borrowed strings (Cow<str>), spans, or
vectors of spans (Vec<Span>).
§Example
use ratatui::{ widgets::Block, text::Line };
Block::bordered()
.title_top("Left1") // By default in the top left corner
.title_top(Line::from("Left2").left_aligned())
.title_top(Line::from("Right").right_aligned())
.title_top(Line::from("Center").centered());
// Renders
// ┌Left1─Left2───Center─────────Right┐
// │ │
// └──────────────────────────────────┘Sourcepub fn title_bottom<T>(self, title: T) -> Block<'a>
pub fn title_bottom<T>(self, title: T) -> Block<'a>
Adds a title to the bottom of the block.
You can provide any type that can be converted into Line including: strings, string
slices (&str), borrowed strings (Cow<str>), spans, or
vectors of spans (Vec<Span>).
§Example
use ratatui::{ widgets::Block, text::Line };
Block::bordered()
.title_bottom("Left1") // By default in the top left corner
.title_bottom(Line::from("Left2").left_aligned())
.title_bottom(Line::from("Right").right_aligned())
.title_bottom(Line::from("Center").centered());
// Renders
// ┌──────────────────────────────────┐
// │ │
// └Left1─Left2───Center─────────Right┘Sourcepub fn title_style<S>(self, style: S) -> Block<'a>
pub fn title_style<S>(self, style: S) -> Block<'a>
Applies the style to all titles.
This style will be applied to all titles of the block. If a title has a style set, it will
be applied after this style. This style will be applied after any Block::style or
Block::border_style is applied.
See Style for more information on how merging styles works.
style accepts any type that is convertible to Style (e.g. Style, Color, or
your own type that implements Into<Style>).
Sourcepub const fn title_alignment(self, alignment: HorizontalAlignment) -> Block<'a>
pub const fn title_alignment(self, alignment: HorizontalAlignment) -> Block<'a>
Sets the default Alignment for all block titles.
Titles that explicitly set an Alignment will ignore this.
§Example
This example aligns all titles in the center except the “right” title which explicitly sets
Alignment::Right.
use ratatui::layout::Alignment;
use ratatui::text::Line;
use ratatui::widgets::Block;
Block::bordered()
.title_alignment(Alignment::Center)
// This title won't be aligned in the center
.title(Line::from("right").right_aligned())
.title("foo")
.title("bar");Sourcepub const fn title_position(self, position: TitlePosition) -> Block<'a>
pub const fn title_position(self, position: TitlePosition) -> Block<'a>
Sets the default TitlePosition for all block titles.
§Example
This example positions all titles on the bottom by default. The “top” title explicitly sets
its position to Top, so it is not affected. The “foo” and “bar” titles will be positioned
at the bottom.
use ratatui::widgets::{Block, TitlePosition};
Block::bordered()
.title_position(TitlePosition::Bottom)
.title("foo") // will be at the bottom
.title_top("top") // will be at the top
.title("bar"); // will be at the bottomSourcepub fn border_style<S>(self, style: S) -> Block<'a>
pub fn border_style<S>(self, style: S) -> Block<'a>
Defines the style of the borders.
This style is applied only to the areas covered by borders, and is applied to the block
after any Block::style is applied.
See Style for more information on how merging styles works.
style accepts any type that is convertible to Style (e.g. Style, Color, or
your own type that implements Into<Style>).
§Example
This example shows a Block with blue borders.
use ratatui::style::{Style, Stylize};
use ratatui::widgets::Block;
Block::bordered().border_style(Style::new().blue());Sourcepub fn style<S>(self, style: S) -> Block<'a>
pub fn style<S>(self, style: S) -> Block<'a>
Defines the style of the entire block.
This is the most generic Style a block can receive, it will be merged with any other
more specific styles. Elements can be styled further with Block::title_style and
Block::border_style, which will be applied on top of this style. If the block is used as
a container for another widget (e.g. a Paragraph), then the style of the widget is
generally applied before this style.
See Style for more information on how merging styles works.
style accepts any type that is convertible to Style (e.g. Style, Color, or
your own type that implements Into<Style>).
§Example
use ratatui::style::{Color, Style, Stylize};
use ratatui::widgets::{Block, Paragraph};
let block = Block::new().style(Style::new().red().on_black());
// For border and title you can additionally apply styles on top of the block level style.
let block = Block::new()
.style(Style::new().red().bold().italic())
.border_style(Style::new().not_italic()) // will be red and bold
.title_style(Style::new().not_bold()) // will be red and italic
.title("Title");
// To style the inner widget, you can style the widget itself.
let paragraph = Paragraph::new("Content")
.block(block)
.style(Style::new().white().not_bold()); // will be white, and italicSourcepub const fn borders(self, flag: Borders) -> Block<'a>
pub const fn borders(self, flag: Borders) -> Block<'a>
Defines which borders to display.
Borders can also be styled with Block::border_style and Block::border_type.
§Examples
Display left and right borders.
use ratatui::widgets::{Block, Borders};
Block::new().borders(Borders::LEFT | Borders::RIGHT);To show all borders you can abbreviate this with Block::bordered
Sourcepub const fn border_type(self, border_type: BorderType) -> Block<'a>
pub const fn border_type(self, border_type: BorderType) -> Block<'a>
Sets the symbols used to display the border (e.g. single line, double line, thick or rounded borders).
Setting this overwrites any custom border_set that was set.
See BorderType for the full list of available symbols.
§Examples
use ratatui::widgets::{Block, BorderType};
Block::bordered()
.border_type(BorderType::Rounded)
.title("Block");
// Renders
// ╭Block╮
// │ │
// ╰─────╯Sourcepub const fn border_set(self, border_set: Set<'a>) -> Block<'a>
pub const fn border_set(self, border_set: Set<'a>) -> Block<'a>
Sets the symbols used to display the border as a ratatui_core::symbols::border::Set.
Setting this overwrites any border_type that was set.
§Examples
use ratatui::{widgets::Block, symbols};
Block::bordered().border_set(symbols::border::DOUBLE).title("Block");
// Renders
// ╔Block╗
// ║ ║
// ╚═════╝Sourcepub const fn padding(self, padding: Padding) -> Block<'a>
pub const fn padding(self, padding: Padding) -> Block<'a>
Defines the padding inside a Block.
See Padding for more information.
§Examples
This renders a Block with no padding (the default).
use ratatui::widgets::{Block, Padding};
Block::bordered().padding(Padding::ZERO);
// Renders
// ┌───────┐
// │content│
// └───────┘This example shows a Block with padding left and right (Padding::horizontal).
Notice the two spaces before and after the content.
use ratatui::widgets::{Block, Padding};
Block::bordered().padding(Padding::horizontal(2));
// Renders
// ┌───────────┐
// │ content │
// └───────────┘Sourcepub const fn merge_borders(self, strategy: MergeStrategy) -> Block<'a>
pub const fn merge_borders(self, strategy: MergeStrategy) -> Block<'a>
Sets the block’s MergeStrategy for overlapping characters, defaulting to Replace.
Changing the strategy to Exact or Fuzzy collapses border characters that intersect
with any previously rendered borders.
For more information and examples, see the collapse borders recipe and MergeStrategy
docs.
§Example
use ratatui::symbols::merge::MergeStrategy;
// Given several blocks with plain borders (1)
Block::bordered();
// and other blocks with thick borders (2) which are rendered on top of the first
Block::bordered()
.border_type(BorderType::Thick)
.merge_borders(MergeStrategy::Exact);Rendering these blocks with MergeStrategy::Exact or MergeStrategy::Fuzzy will collapse
the borders, resulting in a clean layout without connected borders.
┌───┐ ┌───┐ ┌───┲━━━┓┌───┐
│ │ │ 1 │ │ ┃ ┃│ │
│ 1 │ │ ┏━┿━┓│ 1 ┃ 2 ┃│ 1 │
│ │ │ ┃ │ ┃│ ┃ ┃│ │
└───╆━━━┓└─╂─┘ ┃└───┺━━━┛┢━━━┪
┃ ┃ ┃ 2 ┃ ┃ ┃
┃ 2 ┃ ┗━━━┛ ┃ 2 ┃
┃ ┃ ┃ ┃
┗━━━┛ ┗━━━┛Sourcepub fn inner(&self, area: Rect) -> Rect
pub fn inner(&self, area: Rect) -> Rect
Computes the inner area of a block after subtracting space for borders, titles, and padding.
§Examples
Draw a block nested within another block
use ratatui::Frame;
use ratatui::widgets::Block;
let outer_block = Block::bordered().title("Outer");
let inner_block = Block::bordered().title("Inner");
let outer_area = frame.area();
let inner_area = outer_block.inner(outer_area);
frame.render_widget(outer_block, outer_area);
frame.render_widget(inner_block, inner_area);
// Renders
// ┌Outer────────┐
// │┌Inner──────┐│
// ││ ││
// │└───────────┘│
// └─────────────┘Trait Implementations§
impl<'a> Eq for Block<'a>
impl<'a> StructuralPartialEq for Block<'a>
Auto Trait Implementations§
impl<'a> Freeze for Block<'a>
impl<'a> RefUnwindSafe for Block<'a>
impl<'a> Send for Block<'a>
impl<'a> Sync for Block<'a>
impl<'a> Unpin for Block<'a>
impl<'a> UnwindSafe for Block<'a>
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> 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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> 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, U> Stylize<'_, T> for Uwhere
U: Styled<Item = T>,
impl<T, U> Stylize<'_, T> for Uwhere
U: Styled<Item = T>,
fn bg<C>(self, color: C) -> T
fn fg<C>(self, color: C) -> T
fn add_modifier(self, modifier: Modifier) -> T
fn remove_modifier(self, modifier: Modifier) -> T
fn reset(self) -> T
Source§fn on_magenta(self) -> T
fn on_magenta(self) -> T
magenta.Source§fn on_dark_gray(self) -> T
fn on_dark_gray(self) -> T
dark_gray.Source§fn on_light_red(self) -> T
fn on_light_red(self) -> T
light_red.Source§fn light_green(self) -> T
fn light_green(self) -> T
light_green.Source§fn on_light_green(self) -> T
fn on_light_green(self) -> T
light_green.Source§fn light_yellow(self) -> T
fn light_yellow(self) -> T
light_yellow.Source§fn on_light_yellow(self) -> T
fn on_light_yellow(self) -> T
light_yellow.Source§fn light_blue(self) -> T
fn light_blue(self) -> T
light_blue.Source§fn on_light_blue(self) -> T
fn on_light_blue(self) -> T
light_blue.Source§fn light_magenta(self) -> T
fn light_magenta(self) -> T
light_magenta.Source§fn on_light_magenta(self) -> T
fn on_light_magenta(self) -> T
light_magenta.Source§fn light_cyan(self) -> T
fn light_cyan(self) -> T
light_cyan.Source§fn on_light_cyan(self) -> T
fn on_light_cyan(self) -> T
light_cyan.Source§fn not_italic(self) -> T
fn not_italic(self) -> T
italic modifier.Source§fn underlined(self) -> T
fn underlined(self) -> T
underlined modifier.Source§fn not_underlined(self) -> T
fn not_underlined(self) -> T
underlined modifier.Source§fn slow_blink(self) -> T
fn slow_blink(self) -> T
slow_blink modifier.Source§fn not_slow_blink(self) -> T
fn not_slow_blink(self) -> T
slow_blink modifier.Source§fn rapid_blink(self) -> T
fn rapid_blink(self) -> T
rapid_blink modifier.Source§fn not_rapid_blink(self) -> T
fn not_rapid_blink(self) -> T
rapid_blink modifier.Source§fn not_reversed(self) -> T
fn not_reversed(self) -> T
reversed modifier.hidden modifier.hidden modifier.Source§fn crossed_out(self) -> T
fn crossed_out(self) -> T
crossed_out modifier.Source§fn not_crossed_out(self) -> T
fn not_crossed_out(self) -> T
crossed_out modifier.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