rust: transmute: simplify code with Rust 1.80.0 split_at_*checked()
`feature(split_at_checked)` [1] has been stabilized in Rust 1.80.0 [2], which is older than our new minimum Rust version (Rust 1.85.0). Thus simplify the code using `split_at_*checked()`. Link: https://github.com/rust-lang/rust/issues/119128 [1] Link: https://github.com/rust-lang/rust/pull/124678 [2] Reviewed-by: Tamir Duberstein <tamird@kernel.org> Reviewed-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260405235309.418950-14-ojeda@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
parent
d1aa40daa7
commit
f309a6edda
1 changed files with 6 additions and 27 deletions
|
|
@ -66,16 +66,9 @@ pub unsafe trait FromBytes {
|
|||
where
|
||||
Self: Sized,
|
||||
{
|
||||
if bytes.len() < size_of::<Self>() {
|
||||
None
|
||||
} else {
|
||||
// PANIC: We checked that `bytes.len() >= size_of::<Self>`, thus `split_at` cannot
|
||||
// panic.
|
||||
// TODO: replace with `split_at_checked` once the MSRV is >= 1.80.
|
||||
let (prefix, remainder) = bytes.split_at(size_of::<Self>());
|
||||
let (prefix, remainder) = bytes.split_at_checked(size_of::<Self>())?;
|
||||
|
||||
Self::from_bytes(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
Self::from_bytes(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
|
||||
/// Converts a mutable slice of bytes to a reference to `Self`.
|
||||
|
|
@ -108,16 +101,9 @@ pub unsafe trait FromBytes {
|
|||
where
|
||||
Self: AsBytes + Sized,
|
||||
{
|
||||
if bytes.len() < size_of::<Self>() {
|
||||
None
|
||||
} else {
|
||||
// PANIC: We checked that `bytes.len() >= size_of::<Self>`, thus `split_at_mut` cannot
|
||||
// panic.
|
||||
// TODO: replace with `split_at_mut_checked` once the MSRV is >= 1.80.
|
||||
let (prefix, remainder) = bytes.split_at_mut(size_of::<Self>());
|
||||
let (prefix, remainder) = bytes.split_at_mut_checked(size_of::<Self>())?;
|
||||
|
||||
Self::from_bytes_mut(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
Self::from_bytes_mut(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
|
||||
/// Creates an owned instance of `Self` by copying `bytes`.
|
||||
|
|
@ -147,16 +133,9 @@ pub unsafe trait FromBytes {
|
|||
where
|
||||
Self: Sized,
|
||||
{
|
||||
if bytes.len() < size_of::<Self>() {
|
||||
None
|
||||
} else {
|
||||
// PANIC: We checked that `bytes.len() >= size_of::<Self>`, thus `split_at` cannot
|
||||
// panic.
|
||||
// TODO: replace with `split_at_checked` once the MSRV is >= 1.80.
|
||||
let (prefix, remainder) = bytes.split_at(size_of::<Self>());
|
||||
let (prefix, remainder) = bytes.split_at_checked(size_of::<Self>())?;
|
||||
|
||||
Self::from_bytes_copy(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
Self::from_bytes_copy(prefix).map(|s| (s, remainder))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue