diff --git a/aoc2020/src/day23.rs b/aoc2020/src/day23.rs index 5e3c626..cd27a66 100644 --- a/aoc2020/src/day23.rs +++ b/aoc2020/src/day23.rs @@ -71,6 +71,8 @@ impl CupCircle { // keep subtracting one until it finds a cup that wasn't just picked up. If at any point in // this process the value goes below the lowest value on any cup's label, it wraps around to // the highest value on any cup's label instead. + // + // TODO: use std::cmp::Ord::clamp when stabilized (Rust 1.50) let mut destination = if current > 1 { current - 1 } else { self.max() }; while removed_cups.contains(&destination) { destination = if destination > 1 { @@ -191,6 +193,8 @@ impl FastCupCircle { // keep subtracting one until it finds a cup that wasn't just picked up. If at any point in // this process the value goes below the lowest value on any cup's label, it wraps around to // the highest value on any cup's label instead. + // + // TODO: use std::cmp::Ord::clamp when stabilized (Rust 1.50) let mut destination = if self.current > 1 { self.current - 1 } else { diff --git a/aoc2021/src/day02.rs b/aoc2021/src/day02.rs index a65b4e1..2bfc9c7 100644 --- a/aoc2021/src/day02.rs +++ b/aoc2021/src/day02.rs @@ -69,7 +69,10 @@ impl std::str::FromStr for Command { type Err = anyhow::Error; fn from_str(s: &str) -> Result { - let (word, number) = s.split_once(' ').context("couldn't split command")?; + let mut split = s.split(' '); + + let word = split.next().context("couldn't find word in command")?; + let number = split.next().context("couldn't find number in command")?; let number = number.parse()?;