1use bytes::{Buf, BufMut};
2
3use crate::prelude::{BitBufMut, BitsMut};
4
5use super::{bit_buf::BitBuf, bits::Bits};
6
7impl Buf for Bits {
8 fn remaining(&self) -> usize {
9 self.remaining_bytes()
10 }
11
12 fn chunk(&self) -> &[u8] {
13 self.chunk_bytes()
14 }
15
16 fn advance(&mut self, cnt: usize) {
17 self.advance_bytes(cnt);
18 }
19}
20
21impl Buf for BitsMut {
22 fn remaining(&self) -> usize {
23 self.remaining_bytes()
24 }
25
26 fn chunk(&self) -> &[u8] {
27 self.chunk_bytes()
28 }
29
30 fn advance(&mut self, cnt: usize) {
31 self.advance_bytes(cnt);
32 }
33}
34
35unsafe impl BufMut for BitsMut {
36 fn remaining_mut(&self) -> usize {
37 self.remaining_mut_bytes()
38 }
39
40 unsafe fn advance_mut(&mut self, cnt: usize) {
41 self.advance_mut_bytes(cnt);
42 }
43
44 fn chunk_mut(&mut self) -> &mut bytes::buf::UninitSlice {
45 self.chunk_mut_bytes()
46 }
47}