[go: up one dir, main page]

Struct Block

Source
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

§Border Configuration

§Title Configuration

§Styling and Layout

§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

Implementations§

Source§

impl<'a> Block<'a>

Source

pub const fn new() -> Block<'a>

Creates a new block with no Borders or Padding.

Source

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));
Source

pub fn title<T>(self, title: T) -> Block<'a>
where T: Into<Line<'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.

Source

pub fn title_top<T>(self, title: T) -> Block<'a>
where T: Into<Line<'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┐
// │                                  │
// └──────────────────────────────────┘
Source

pub fn title_bottom<T>(self, title: T) -> Block<'a>
where T: Into<Line<'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┘
Source

pub fn title_style<S>(self, style: S) -> Block<'a>
where S: Into<Style>,

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

Source

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");
Source

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 bottom
Source

pub fn border_style<S>(self, style: S) -> Block<'a>
where S: Into<Style>,

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());
Source

pub fn style<S>(self, style: S) -> Block<'a>
where S: Into<Style>,

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 italic
Source

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

Source

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╮
// │     │
// ╰─────╯
Source

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╗
// ║     ║
// ╚═════╝
Source

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  │
// └───────────┘
Source

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 ┃
    ┃   ┃                ┃   ┃
    ┗━━━┛                ┗━━━┛
Source

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§

Source§

impl<'a> Clone for Block<'a>

Source§

fn clone(&self) -> Block<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Block<'a>

Source§

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

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

impl<'a> Default for Block<'a>

Source§

fn default() -> Block<'a>

Returns the “default value” for a type. Read more
Source§

impl<'a> Hash for Block<'a>

Source§

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

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<'a> PartialEq for Block<'a>

Source§

fn eq(&self, other: &Block<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const 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 Styled for Block<'_>

Source§

type Item = Block<'_>

Source§

fn style(&self) -> Style

Returns the style of the object.
Source§

fn set_style<S>(self, style: S) -> <Block<'_> as Styled>::Item
where S: Into<Style>,

Sets the style of the object. Read more
Source§

impl Widget for &Block<'_>

Source§

fn render(self, area: Rect, buf: &mut Buffer)

Draws the current state of the widget in the given buffer. That is the only method required to implement a custom widget.
Source§

impl Widget for Block<'_>

Source§

fn render(self, area: Rect, buf: &mut Buffer)

Draws the current state of the widget in the given buffer. That is the only method required to implement a custom widget.
Source§

impl<'a> Eq for Block<'a>

Source§

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 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> 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<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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> Stylize<'_, T> for U
where U: Styled<Item = T>,

Source§

fn bg<C>(self, color: C) -> T
where C: Into<Color>,

Source§

fn fg<C>(self, color: C) -> T
where C: Into<Color>,

Source§

fn add_modifier(self, modifier: Modifier) -> T

Source§

fn remove_modifier(self, modifier: Modifier) -> T

Source§

fn reset(self) -> T

Source§

fn black(self) -> T

Sets the foreground color to black.
Source§

fn on_black(self) -> T

Sets the background color to black.
Source§

fn red(self) -> T

Sets the foreground color to red.
Source§

fn on_red(self) -> T

Sets the background color to red.
Source§

fn green(self) -> T

Sets the foreground color to green.
Source§

fn on_green(self) -> T

Sets the background color to green.
Source§

fn yellow(self) -> T

Sets the foreground color to yellow.
Source§

fn on_yellow(self) -> T

Sets the background color to yellow.
Source§

fn blue(self) -> T

Sets the foreground color to blue.
Source§

fn on_blue(self) -> T

Sets the background color to blue.
Source§

fn magenta(self) -> T

Sets the foreground color to magenta.
Source§

fn on_magenta(self) -> T

Sets the background color to magenta.
Source§

fn cyan(self) -> T

Sets the foreground color to cyan.
Source§

fn on_cyan(self) -> T

Sets the background color to cyan.
Source§

fn gray(self) -> T

Sets the foreground color to gray.
Source§

fn on_gray(self) -> T

Sets the background color to gray.
Source§

fn dark_gray(self) -> T

Sets the foreground color to dark_gray.
Source§

fn on_dark_gray(self) -> T

Sets the background color to dark_gray.
Source§

fn light_red(self) -> T

Sets the foreground color to light_red.
Source§

fn on_light_red(self) -> T

Sets the background color to light_red.
Source§

fn light_green(self) -> T

Sets the foreground color to light_green.
Source§

fn on_light_green(self) -> T

Sets the background color to light_green.
Source§

fn light_yellow(self) -> T

Sets the foreground color to light_yellow.
Source§

fn on_light_yellow(self) -> T

Sets the background color to light_yellow.
Source§

fn light_blue(self) -> T

Sets the foreground color to light_blue.
Source§

fn on_light_blue(self) -> T

Sets the background color to light_blue.
Source§

fn light_magenta(self) -> T

Sets the foreground color to light_magenta.
Source§

fn on_light_magenta(self) -> T

Sets the background color to light_magenta.
Source§

fn light_cyan(self) -> T

Sets the foreground color to light_cyan.
Source§

fn on_light_cyan(self) -> T

Sets the background color to light_cyan.
Source§

fn white(self) -> T

Sets the foreground color to white.
Source§

fn on_white(self) -> T

Sets the background color to white.
Source§

fn bold(self) -> T

Adds the bold modifier.
Source§

fn not_bold(self) -> T

Removes the bold modifier.
Source§

fn dim(self) -> T

Adds the dim modifier.
Source§

fn not_dim(self) -> T

Removes the dim modifier.
Source§

fn italic(self) -> T

Adds the italic modifier.
Source§

fn not_italic(self) -> T

Removes the italic modifier.
Source§

fn underlined(self) -> T

Adds the underlined modifier.
Source§

fn not_underlined(self) -> T

Removes the underlined modifier.
Adds the slow_blink modifier.
Removes the slow_blink modifier.
Adds the rapid_blink modifier.
Removes the rapid_blink modifier.
Source§

fn reversed(self) -> T

Adds the reversed modifier.
Source§

fn not_reversed(self) -> T

Removes the reversed modifier.
Source§

fn hidden(self) -> T

Adds the hidden modifier.
Source§

fn not_hidden(self) -> T

Removes the hidden modifier.
Source§

fn crossed_out(self) -> T

Adds the crossed_out modifier.
Source§

fn not_crossed_out(self) -> T

Removes the crossed_out modifier.
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.