aoc/year2019/
day09.rs

1//! # Sensor Boost
2//!
3//! This problem is essentially a unit test for the full intcode computer.
4use super::intcode::*;
5use crate::util::parse::*;
6
7pub fn parse(input: &str) -> Vec<i64> {
8    input.iter_signed().collect()
9}
10
11pub fn part1(input: &[i64]) -> i64 {
12    run(input, 1)
13}
14
15pub fn part2(input: &[i64]) -> i64 {
16    run(input, 2)
17}
18
19fn run(input: &[i64], value: i64) -> i64 {
20    let mut computer = Computer::new(input);
21    computer.input(value);
22
23    match computer.run() {
24        State::Output(result) => result,
25        _ => unreachable!(),
26    }
27}