1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use bytes::{BufMut, Bytes, BytesMut};
pub struct BulkString(Bytes);
impl BulkString {
pub fn new(input: &[u8]) -> BulkString {
let length_string = input.len().to_string();
let mut bytes = BytesMut::with_capacity(input.len() + length_string.len() + 5);
bytes.put_u8(0x24);
bytes.put_slice(length_string.as_bytes());
bytes.put_u8(0x0d);
bytes.put_u8(0x0a);
bytes.put_slice(input);
bytes.put_u8(0x0d);
bytes.put_u8(0x0a);
BulkString(bytes.freeze())
}
#[inline]
pub fn bytes(&self) -> Bytes {
self.0.clone()
}
#[inline]
pub fn len(&self) -> usize {
self.0.len()
}
}