use crate::{
formatter::{
pattern_formatter::{Pattern, PatternContext},
Formatter, FullFormatter,
},
Record, StringBuf,
};
#[derive(Clone)]
pub struct Full {
full_formatter: FullFormatter,
}
impl Default for Full {
fn default() -> Self {
Full {
full_formatter: FullFormatter::without_eol(),
}
}
}
impl Pattern for Full {
fn format(
&self,
record: &Record,
dest: &mut StringBuf,
ctx: &mut PatternContext,
) -> crate::Result<()> {
let extra_info = self.full_formatter.format(record, dest)?;
if let Some(style_range) = extra_info.style_range {
if ctx.fmt_info_builder.info.style_range.is_none() {
ctx.set_style_range(style_range)
}
}
Ok(())
}
}