From 6d14236aa4bc6d72aa2dc1693e4deebdd10534bf Mon Sep 17 00:00:00 2001 From: Daniel Seiller Date: Tue, 8 Dec 2020 14:37:28 +0100 Subject: [PATCH] Day 8 minor cleanup --- src/day8.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/day8.rs b/src/day8.rs index 4b6883a..bdedf96 100644 --- a/src/day8.rs +++ b/src/day8.rs @@ -14,6 +14,18 @@ pub struct CPU { acc: i64, } +impl Inst { + fn flip(&mut self) { + if let Some(new_inst) = match &self { + Inst::Jmp { offset } => Some(Inst::Nop { unused: *offset }), + Inst::Nop { unused } => Some(Inst::Jmp { offset: *unused }), + _ => None, + } { + *self=new_inst; + }; + } +} + impl From<&str> for Inst { fn from(inst: &str) -> Self { let mut inst = inst.split_whitespace(); @@ -46,13 +58,7 @@ impl CPU { } fn flip(&mut self, idx: usize) { - if let Some(new_inst) = match &self.program[idx] { - Inst::Jmp { offset } => Some(Inst::Nop { unused: *offset }), - Inst::Nop { unused } => Some(Inst::Jmp { offset: *unused }), - _ => None, - } { - self.program[idx] = new_inst; - }; + self.program[idx].flip(); } fn step(&mut self) -> bool {