ps_buffer/traits/
to_buffer.rs

1use crate::{Buffer, BufferError};
2
3pub trait ToBuffer {
4    /// Creates a new [`Buffer`] containing the byte representation of `self`.
5    /// # Errors
6    /// - Returns [`BufferError`] if the allocation fails.
7    fn to_buffer(self) -> Result<Buffer, BufferError>;
8}
9
10impl<T: AsRef<[u8]>> ToBuffer for T {
11    fn to_buffer(self) -> Result<Buffer, BufferError> {
12        Buffer::from_slice(self)
13    }
14}
15
16#[cfg(test)]
17mod tests {
18    use crate::BufferError;
19
20    use super::ToBuffer;
21
22    #[test]
23    fn from_str() -> Result<(), BufferError> {
24        let str = "Hello, world!";
25        let buffer = str.to_buffer()?;
26
27        assert_eq!(str.as_bytes(), &buffer[..], "Values should be equal.");
28
29        Ok(())
30    }
31}