diff options
Diffstat (limited to 'src/2021/16/mod.rs')
-rw-r--r-- | src/2021/16/mod.rs | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/src/2021/16/mod.rs b/src/2021/16/mod.rs index 2d32034..797f50a 100644 --- a/src/2021/16/mod.rs +++ b/src/2021/16/mod.rs @@ -39,7 +39,7 @@ impl FromIterator<bool> for LiteralU8 { { let mut ret = 0; for b in iter { - ret = (ret << 1) | if b { 1 } else { 0 }; + ret = (ret << 1) | u8::from(b); } Self(ret) } @@ -54,7 +54,7 @@ impl FromIterator<bool> for LiteralU16 { { let mut ret = 0; for b in iter { - ret = (ret << 1) | if b { 1 } else { 0 }; + ret = (ret << 1) | u16::from(b); } Self(ret) } @@ -133,27 +133,9 @@ impl Packet { packets.iter().map(|packet| packet.eval()).max().unwrap() } 4 => unreachable!(), - 5 => { - if packets[0].eval() > packets[1].eval() { - 1 - } else { - 0 - } - } - 6 => { - if packets[0].eval() < packets[1].eval() { - 1 - } else { - 0 - } - } - 7 => { - if packets[0].eval() == packets[1].eval() { - 1 - } else { - 0 - } - } + 5 => i64::from(packets[0].eval() > packets[1].eval()), + 6 => i64::from(packets[0].eval() < packets[1].eval()), + 7 => i64::from(packets[0].eval() == packets[1].eval()), _ => unreachable!(), }, } |