chiark / gitweb /
clock: impl TryFrom<char> for User
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 19 Mar 2021 00:22:47 +0000 (00:22 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 20:12:41 +0000 (20:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs

index 5be01c6fa5c911f60f41de897e520970d78bc473..978650c82575c5aa3dff791c13a1c061646a75c7 100644 (file)
@@ -59,6 +59,16 @@ impl TryFrom<u8> for User {
   }) }
 }
 
+impl TryFrom<char> for User {
+  type Error = BadClockUserError;
+  #[throws(BadClockUserError)]
+  fn try_from(c: char) -> User { User(match c {
+    'x' | 'X' => false,
+    'y' | 'Y' => true,
+    _ => throw!(BadClockUserError),
+  }) }
+}
+
 impl From<User> for u8 {
   fn from(user: User) -> u8 { user.0 as u8 }
 }