#[cfg(feature = "unicode")]
pub mod align;
#[cfg(feature = "unicode")]
pub mod ellipsis;
mod escape_non_printable_posix_ext;
mod non_nul_str;
#[cfg(feature = "unicode")]
pub use align::{AlignExt, Alignment};
#[cfg(feature = "unicode")]
pub use ellipsis::EllipsizeExt;
pub use escape_non_printable_posix_ext::EscapeNonPrintablePosixExt;
pub use non_nul_str::{ContainsNul, NonNulStr};
#[cfg(feature = "unicode")]
use unicode_width::UnicodeWidthStr;
#[cfg(feature = "unicode")]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Measure {
Bytes(usize),
Columns(usize),
}
#[cfg(feature = "unicode")]
impl Measure {
pub(crate) fn amount(self) -> usize {
match self {
Measure::Bytes(n) | Measure::Columns(n) => n,
}
}
pub(crate) fn cost(self, s: &str) -> usize {
match self {
Measure::Bytes(_) => s.len(),
Measure::Columns(_) => s.width(),
}
}
}