From 542f61b4946133b0b698ac22a4c41ddc7ad8e8e3 Mon Sep 17 00:00:00 2001 From: MA Beaudet Date: Mon, 8 Nov 2021 15:16:47 +0100 Subject: [PATCH] fix(card): add error handling of TryFrom for Card --- src/card.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/card.rs b/src/card.rs index 98423ec..709218a 100644 --- a/src/card.rs +++ b/src/card.rs @@ -155,6 +155,15 @@ impl TryFrom for Card { type Error = MyError; fn try_from(value: u32) -> Result { + let _ = match (value >> 8) & 0xF { + 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 => Ok(()), + _ => Err(MyError::InvalidRank), + }; + + let _ = match (value >> 12) & 0xF { + 0b1000 | 0b0100 | 0b0010 | 0b0001 => Ok(()), + _ => Err(MyError::InvalidSuit), + }; Ok(Self(value)) } } -- 2.20.1