Struct tui::text::Text [−][src]
A string split over multiple lines where each line is composed of several clusters, each with their own style.
A Text
, like a Span
, can be constructed using one of the many From
implementations
or via the Text::raw
and Text::styled
methods. Helpfully, Text
also implements
core::iter::Extend
which enables the concatenation of several Text
blocks.
let style = Style::default().fg(Color::Yellow).add_modifier(Modifier::ITALIC); // An initial two lines of `Text` built from a `&str` let mut text = Text::from("The first line\nThe second line"); assert_eq!(2, text.height()); // Adding two more unstyled lines text.extend(Text::raw("These are two\nmore lines!")); assert_eq!(4, text.height()); // Adding a final two styled lines text.extend(Text::styled("Some more lines\nnow with more style!", style)); assert_eq!(6, text.height());
Fields
lines: Vec<Spans<'a>>
Implementations
impl<'a> Text<'a>
[src]
impl<'a> Text<'a>
[src]pub fn raw<T>(content: T) -> Text<'a> where
T: Into<Cow<'a, str>>,
[src]
T: Into<Cow<'a, str>>,
Create some text (potentially multiple lines) with no style.
Examples
Text::raw("The first line\nThe second line"); Text::raw(String::from("The first line\nThe second line"));
pub fn styled<T>(content: T, style: Style) -> Text<'a> where
T: Into<Cow<'a, str>>,
[src]
T: Into<Cow<'a, str>>,
Create some text (potentially multiple lines) with a style.
Examples
let style = Style::default().fg(Color::Yellow).add_modifier(Modifier::ITALIC); Text::styled("The first line\nThe second line", style); Text::styled(String::from("The first line\nThe second line"), style);
pub fn width(&self) -> usize
[src]
Returns the max width of all the lines.
Examples
use tui::text::Text; let text = Text::from("The first line\nThe second line"); assert_eq!(15, text.width());
pub fn height(&self) -> usize
[src]
Returns the height.
Examples
use tui::text::Text; let text = Text::from("The first line\nThe second line"); assert_eq!(2, text.height());
pub fn patch_style(&mut self, style: Style)
[src]
Apply a new style to existing text.
Examples
let style = Style::default().fg(Color::Yellow).add_modifier(Modifier::ITALIC); let mut raw_text = Text::raw("The first line\nThe second line"); let styled_text = Text::styled(String::from("The first line\nThe second line"), style); assert_ne!(raw_text, styled_text); raw_text.patch_style(style); assert_eq!(raw_text, styled_text);
Trait Implementations
impl<'a> Extend<Spans<'a>> for Text<'a>
[src]
impl<'a> Extend<Spans<'a>> for Text<'a>
[src]fn extend<T: IntoIterator<Item = Spans<'a>>>(&mut self, iter: T)
[src]
pub fn extend_one(&mut self, item: A)
[src]
pub fn extend_reserve(&mut self, additional: usize)
[src]
impl<'a> IntoIterator for Text<'a>
[src]
impl<'a> IntoIterator for Text<'a>
[src]impl<'a> StructuralPartialEq for Text<'a>
[src]
impl<'a> StructuralPartialEq for Text<'a>
[src]Auto Trait Implementations
impl<'a> RefUnwindSafe for Text<'a>
impl<'a> RefUnwindSafe for Text<'a>
impl<'a> UnwindSafe for Text<'a>
impl<'a> UnwindSafe for Text<'a>