smol-bytes 0.1.6

High-performance, clone-efficient byte buffers optimized for small data.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use super::BytesMut;

use quickcheck::Arbitrary;
use std::{boxed::Box, vec::Vec};

impl Arbitrary for BytesMut {
  fn arbitrary(g: &mut quickcheck::Gen) -> Self {
    BytesMut::from(<Vec<u8> as Arbitrary>::arbitrary(g).as_slice())
  }

  fn shrink(&self) -> Box<dyn Iterator<Item = Self>> {
    Box::new(
      <Vec<u8> as Arbitrary>::shrink(&self.to_vec()).map(|vec| BytesMut::from(vec.as_slice())),
    )
  }
}