From 8ea716cba83714f6ceecc20f780d2b60bdb1d0b5 Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Sun, 2 Jan 2022 18:49:25 +0100 Subject: [PATCH] Properly use TryFrom --- 2021/src/day23.rs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/2021/src/day23.rs b/2021/src/day23.rs index b67dc2b..c75b464 100644 --- a/2021/src/day23.rs +++ b/2021/src/day23.rs @@ -35,6 +35,20 @@ impl Pod { } } +impl TryFrom for Pod { + type Error = usize; + + fn try_from(index: usize) -> Result { + match index { + 0 => Ok(Pod::A), + 1 => Ok(Pod::B), + 2 => Ok(Pod::C), + 3 => Ok(Pod::D), + _ => Err(index), + } + } +} + impl TryFrom for Pod { type Error = &'static str; @@ -107,13 +121,7 @@ impl State { .iter() .enumerate() .map(|(index, room)| { - let pod = match index { - 0 => Pod::A, - 1 => Pod::B, - 2 => Pod::C, - 3 => Pod::D, - _ => unreachable!(), - }; + let pod = Pod::try_from(index).unwrap(); room.iter() .enumerate()