diff --git a/src/slice/mod.rs b/src/slice/mod.rs index 2f82f7e3b..63f9c3745 100644 --- a/src/slice/mod.rs +++ b/src/slice/mod.rs @@ -249,4 +249,12 @@ mod tests { let slice = Slice::from_reader(&mut reader, 4).expect("read"); assert_eq!(slice, vec![1, 2, 3, 4]); } + + /// Verifies that `Slice::as_slice` returns the data as-is. + #[test] + fn test_slice_as_slice() { + let original = [1_u8, 2, 3, 4]; + let slice = Slice::from_iter(original.iter().copied()); + assert_eq!(slice.as_slice(), original); + } } diff --git a/src/slice/slice_bytes/mod.rs b/src/slice/slice_bytes/mod.rs index 1872460cb..93832b1a8 100644 --- a/src/slice/slice_bytes/mod.rs +++ b/src/slice/slice_bytes/mod.rs @@ -19,6 +19,12 @@ impl Slice { Self(Bytes::copy_from_slice(bytes)) } + /// Returns the bytes slice containing the entire data. + #[must_use] + pub fn as_slice(&self) -> &[u8] { + self + } + #[doc(hidden)] #[must_use] pub fn empty() -> Self { diff --git a/src/slice/slice_default/mod.rs b/src/slice/slice_default/mod.rs index bb6c482dc..ebf965434 100644 --- a/src/slice/slice_default/mod.rs +++ b/src/slice/slice_default/mod.rs @@ -19,6 +19,12 @@ impl Slice { Self(bytes.into()) } + /// Returns the bytes slice containing the entire data. + #[must_use] + pub fn as_slice(&self) -> &[u8] { + self + } + #[doc(hidden)] #[must_use] pub fn empty() -> Self {