pub struct Adler32 { /* private fields */ }Expand description
An Adler-32 computed over data that arrives in pieces.
§Examples
use compress_lib::checksum::{Adler32, adler32};
let mut sum = Adler32::new();
sum.update(b"Wiki");
sum.update(b"pedia");
assert_eq!(sum.finish(), adler32(b"Wikipedia"));Implementations§
Source§impl Adler32
impl Adler32
Sourcepub const fn new() -> Self
pub const fn new() -> Self
An Adler-32 over no data yet (value 1).
§Examples
assert_eq!(compress_lib::checksum::Adler32::new().finish(), 1);Sourcepub const fn from_value(adler: u32, len: u64) -> Self
pub const fn from_value(adler: u32, len: u64) -> Self
Continues from an Adler-32 value already computed over len bytes.
Out-of-range halves (at least 65,521) are reduced first.
§Examples
use compress_lib::checksum::{Adler32, adler32};
let mut sum = Adler32::from_value(adler32(b"Wiki"), 4);
sum.update(b"pedia");
assert_eq!(sum.finish(), adler32(b"Wikipedia"));Sourcepub fn update(&mut self, data: &[u8])
pub fn update(&mut self, data: &[u8])
Feeds more data.
§Examples
let mut sum = compress_lib::checksum::Adler32::new();
sum.update(b"abc");
assert_eq!(sum.finish(), 0x024D_0127);Sourcepub const fn finish(&self) -> u32
pub const fn finish(&self) -> u32
The Adler-32 of everything fed so far. Does not reset.
§Examples
let mut sum = compress_lib::checksum::Adler32::new();
sum.update(b"a");
assert_eq!(sum.finish(), 0x0062_0062);Sourcepub const fn len(&self) -> u64
pub const fn len(&self) -> u64
The number of bytes fed so far (wrapping at 2^64).
§Examples
let mut sum = compress_lib::checksum::Adler32::new();
sum.update(b"abc");
assert_eq!(sum.len(), 3);Sourcepub const fn is_empty(&self) -> bool
pub const fn is_empty(&self) -> bool
true when no data has been fed.
§Examples
assert!(compress_lib::checksum::Adler32::new().is_empty());Sourcepub fn combine(&mut self, other: &Adler32)
pub fn combine(&mut self, other: &Adler32)
Appends the checksum of a second piece of data computed separately.
§Examples
use compress_lib::checksum::{Adler32, adler32};
let mut left = Adler32::new();
left.update(b"hello ");
let mut right = Adler32::new();
right.update(b"world");
left.combine(&right);
assert_eq!(left.finish(), adler32(b"hello world"));Trait Implementations§
impl Copy for Adler32
impl Eq for Adler32
impl StructuralPartialEq for Adler32
Auto Trait Implementations§
impl Forget for Adler32
impl Freeze for Adler32
impl RefUnwindSafe for Adler32
impl Send for Adler32
impl Sync for Adler32
impl Unpin for Adler32
impl UnsafeUnpin for Adler32
impl UnwindSafe for Adler32
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more