abin 0.1.6

A library for working with binaries and strings. The library tries to avoid heap-allocations / memory-copy whenever possible by automatically choosing a reasonable strategy: stack for small binaries; static-lifetime-binary or reference-counting.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/// Some sort of segment that knows its length (in bytes). It's used for constructing
/// binaries/strings efficiently (knowing the entire length in advance to avoid
/// re-allocations).
pub trait Segment {
    /// The number of bytes in this segment.
    fn number_of_bytes(&self) -> usize;

    /// Same as `number_of_bytes==0`.
    #[inline]
    fn is_empty(&self) -> bool {
        self.number_of_bytes() == 0
    }

    /// Constructs an empty-segment (`number_of_bytes` is 0).
    fn empty() -> Self;
}