mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-18 22:59:29 +02:00
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:
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user