ps_buffer/traits/
to_shared_buffer.rs1use crate::{Buffer, BufferError, SharedBuffer};
2
3pub trait ToSharedBuffer {
4 fn to_shared_buffer(self) -> Result<SharedBuffer, BufferError>;
8}
9
10impl<T: AsRef<[u8]>> ToSharedBuffer for T {
11 fn to_shared_buffer(self) -> Result<SharedBuffer, BufferError> {
12 Ok(Buffer::from_slice(self)?.share())
13 }
14}
15
16#[cfg(test)]
17mod tests {
18 use crate::BufferError;
19
20 use super::ToSharedBuffer;
21
22 #[test]
23 fn from_str() -> Result<(), BufferError> {
24 let str = "Hello, world!";
25 let buffer = str.to_shared_buffer()?;
26
27 assert_eq!(str.as_bytes(), &buffer[..], "Values should be equal.");
28
29 Ok(())
30 }
31}