diff --git a/day2/src/main.rs b/day2/src/main.rs index 5060232..0c36028 100644 --- a/day2/src/main.rs +++ b/day2/src/main.rs @@ -9,12 +9,8 @@ use std::path::Path; static INPUT_PATH: &str = "input.txt"; fn main() -> Result<()> { - let submarine_v1 = SubmarineV1 { xcord: 0, depth: 0 }; - let submarine_v2 = SubmarineV2 { - xcord: 0, - depth: 0, - aim: 0, - }; + let submarine_v1 = SubmarineV1::new(); + let submarine_v2 = SubmarineV2::new(); let commands = read_commands(INPUT_PATH)?; let submarine_v1 = apply_commands(submarine_v1, &commands); diff --git a/day2/src/models/submarines.rs b/day2/src/models/submarines.rs index 4c155cc..117eafa 100644 --- a/day2/src/models/submarines.rs +++ b/day2/src/models/submarines.rs @@ -15,6 +15,12 @@ pub struct SubmarineV1 { pub depth: i32, } +impl SubmarineV1 { + pub fn new() -> Self { + SubmarineV1 { xcord: 0, depth: 0 } + } +} + impl Submarine for SubmarineV1 { fn forward(self, unit: i32) -> Self { SubmarineV1 { @@ -48,9 +54,19 @@ impl Submarine for SubmarineV1 { #[derive(Debug, Clone, Copy)] pub struct SubmarineV2 { - pub xcord: i32, - pub depth: i32, - pub aim: i32, + xcord: i32, + depth: i32, + aim: i32, +} + +impl SubmarineV2 { + pub fn new() -> Self { + Self { + xcord: 0, + depth: 0, + aim: 0, + } + } } impl Submarine for SubmarineV2 {