1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2026-05-16 09:38:12 +02:00

try_from_into.rs: Improve slice implementation

Using pattern matching, we can reduce four bound checks to just one.
This commit is contained in:
Eugen
2025-11-29 19:24:55 +09:00
committed by GitHub
parent b5d440fdc3
commit 0bed579a4b
+5 -6
View File
@@ -52,13 +52,12 @@ impl TryFrom<&[i16]> for Color {
type Error = IntoColorError;
fn try_from(slice: &[i16]) -> Result<Self, Self::Error> {
// Check the length.
if slice.len() != 3 {
return Err(IntoColorError::BadLen);
if let &[red, green, blue] = slice {
// Reuse the implementation for a tuple.
Self::try_from((red, green, blue))
} else {
Err(IntoColorError::BadLen)
}
// Reuse the implementation for a tuple.
Self::try_from((slice[0], slice[1], slice[2]))
}
}