irox_bits/buf.rs
1// SPDX-License-Identifier: MIT
2// Copyright 2025 IROX Contributors
3//
4
5use crate::{Bits, Error};
6
7///
8/// Buffered bits - semantically equivalent to BufRead
9pub trait BufBits: Bits {
10 fn fill_buf(&mut self) -> Result<&[u8], Error>;
11 fn consume(&mut self, amt: usize);
12
13 fn has_data_left(&mut self) -> Result<bool, Error> {
14 self.fill_buf().map(|b| !b.is_empty())
15 }
16}
17
18cfg_feature_alloc! {
19 mod alloc;
20 pub use alloc::*;
21}