summary refs log tree commit diff
path: root/ripple/fossil/src/chunker/buz.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ripple/fossil/src/chunker/buz.rs')
-rw-r--r--ripple/fossil/src/chunker/buz.rs9
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);