ps_buffer/implementations/
display.rs

1use std::fmt::{Display, Formatter, Result};
2
3use crate::Buffer;
4
5impl Display for Buffer {
6    /// Prints this buffer in Node.js notation.
7    fn fmt(&self, f: &mut Formatter<'_>) -> Result {
8        write!(f, "<Buffer ")?;
9
10        for (i, byte) in self.as_slice().iter().enumerate() {
11            if i > 0 {
12                write!(f, " ")?;
13            }
14            write!(f, "{byte:02x}")?;
15        }
16
17        write!(f, ">")
18    }
19}
20
21#[cfg(test)]
22mod tests {
23    use crate::{Buffer, BufferError};
24
25    #[test]
26    pub fn deadbeef() -> Result<(), BufferError> {
27        let buffer = Buffer::from_slice(b"\xde\xad\xbe\xef")?;
28        let pretty = buffer.to_string();
29
30        assert_eq!(pretty, "<Buffer de ad be ef>");
31
32        Ok(())
33    }
34}