1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
//! This crate adds the `take_until` method as an extension for iterators.
//!
//! # Example
//!
//! Parsing the next base 128 varint from a byte slice.
//!
//! ```
//! use take_until::TakeUntilExt;
//!
//! let varint = &[0b1010_1100u8, 0b0000_0010, 0b1000_0001];
//! let int: u32 = varint
//!     .iter()
//!     .take_until(|b| (**b & 0b1000_0000) == 0)
//!     .enumerate()
//!     .fold(0, |acc, (i, b)| {
//!         acc | ((*b & 0b0111_1111) as u32) << (i * 7)
//!      });
//! assert_eq!(300, int);
//! ```
mod take_until;

pub use crate::take_until::TakeUntilExt;