2019-10-09 01:40:40 -07:00
|
|
|
use crate::common::*;
|
|
|
|
|
2020-02-14 04:49:25 -08:00
|
|
|
/// String wrapper that uses nonblank characters to display spaces and tabs
|
2019-10-09 01:40:40 -07:00
|
|
|
pub struct ShowWhitespace<'str>(pub &'str str);
|
|
|
|
|
|
|
|
impl<'str> Display for ShowWhitespace<'str> {
|
|
|
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
|
|
|
for c in self.0.chars() {
|
|
|
|
match c {
|
|
|
|
'\t' => write!(f, "␉")?,
|
|
|
|
' ' => write!(f, "␠")?,
|
|
|
|
_ => write!(f, "{}", c)?,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
}
|