Trait stylish_core::Write
source · [−]pub trait Write {
fn write_str(&mut self, s: &str, style: Style) -> Result;
fn write_char(&mut self, c: char, style: Style) -> Result { ... }
fn write_fmt(&mut self, args: Arguments<'_>) -> Result { ... }
}
Expand description
A trait for writing or formatting into attributed Unicode-accepting buffers or streams.
This trait only accepts UTF-8–encoded data and is not
flushable. If you only want to accept Unicode
and you don’t need flushing, you should implement this trait; otherwise you
should implement stylish::io::Write
.
Required Methods
Writes a string slice with a particular Style
into this writer,
returning whether the write succeeded.
This method can only succeed if the entire string slice was successfully written, and this method will not return until all data has been written or an error occurs.
use stylish::{Color, Foreground, Style, Write};
let blue = Style::default().with(Foreground(Color::Blue));
let mut s = String::new();
{
let mut output = stylish::html(&mut s);
output.write_str("water is ", Style::default())?;
output.write_str("blue", blue)?;
output.finish()?;
}
assert_eq!(s, "water is <span style=color:blue>blue</span>");
Provided Methods
sourcefn write_char(&mut self, c: char, style: Style) -> Result
fn write_char(&mut self, c: char, style: Style) -> Result
Writes a char
with a particular Style
into this writer,
returning whether the write succeeded.
A single char
may be encoded as more than one byte. This method can
only succeed if the entire byte sequence was successfully written,
and this method will not return until all data has been written or
an error occurs.
use stylish::{Color, Foreground, Style, Write};
let yellow = Style::default().with(Foreground(Color::Yellow));
let red = Style::default().with(Foreground(Color::Red));
let mut s = String::new();
{
let mut output = stylish::html(&mut s);
output.write_char('⚠', yellow)?;
output.write_char(' ', Style::default())?;
output.write_char('⛔', red)?;
output.finish()?;
}
assert_eq!(
s,
"<span style=color:yellow>⚠</span> <span style=color:red>⛔</span>"
);
Glue for usage of the stylish::write!
macro with implementors of
this trait.
This method should generally not be invoked manually, but rather through
the stylish::write!
macro itself.
let mut s = String::new();
{
let mut output = stylish::html(&mut s);
output.write_fmt(stylish::format_args!("{:(fg=red)}", '☎'))?;
output.finish()?;
}
assert_eq!(s, "<span style=color:red>☎</span>");