diff options
Diffstat (limited to 'ripple/fossil/src/chunker/buz.rs')
-rw-r--r-- | ripple/fossil/src/chunker/buz.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/ripple/fossil/src/chunker/buz.rs b/ripple/fossil/src/chunker/buz.rs index cd12833..6ddb08b 100644 --- a/ripple/fossil/src/chunker/buz.rs +++ b/ripple/fossil/src/chunker/buz.rs @@ -24,11 +24,10 @@ pub struct Rolling<const N: usize> { } impl<const N: usize> Rolling<N> { - pub fn from_slice(input: &[u8]) -> Rolling<N> { - let last_chunk = input - .rchunks_exact(N) - .next() - .expect("need at least Rolling::WINDOW_SIZE bytes"); + /// SAFETY: `input.len() >= N` must hold + #[inline] + pub unsafe fn from_slice_unchecked(input: &[u8]) -> Rolling<N> { + let last_chunk = input.rchunks_exact(N).next().unwrap_unchecked(); let mut window = [0; N]; window.copy_from_slice(last_chunk); |