From 4832842f24ff68db7e649eae19439858cddc5e11 Mon Sep 17 00:00:00 2001 From: Maciej Jur Date: Sun, 27 Nov 2022 00:25:48 +0100 Subject: [PATCH] 2022 Rust directory --- 2022/rust/Cargo.lock | 7 +++++++ 2022/rust/Cargo.toml | 8 ++++++++ 2022/rust/inputs/scratch.txt | 6 ++++++ 2022/rust/src/main.rs | 7 +++++++ 2022/rust/src/solutions/day01.rs | 10 ++++++++++ 2022/rust/src/solutions/mod.rs | 1 + 2022/rust/src/utils.rs | 24 ++++++++++++++++++++++++ 7 files changed, 63 insertions(+) create mode 100644 2022/rust/Cargo.lock create mode 100644 2022/rust/Cargo.toml create mode 100644 2022/rust/inputs/scratch.txt create mode 100644 2022/rust/src/main.rs create mode 100644 2022/rust/src/solutions/day01.rs create mode 100644 2022/rust/src/solutions/mod.rs create mode 100644 2022/rust/src/utils.rs diff --git a/2022/rust/Cargo.lock b/2022/rust/Cargo.lock new file mode 100644 index 0000000..b21cc6a --- /dev/null +++ b/2022/rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rust" +version = "0.1.0" diff --git a/2022/rust/Cargo.toml b/2022/rust/Cargo.toml new file mode 100644 index 0000000..1ec6963 --- /dev/null +++ b/2022/rust/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2022/rust/inputs/scratch.txt b/2022/rust/inputs/scratch.txt new file mode 100644 index 0000000..1e4874b --- /dev/null +++ b/2022/rust/inputs/scratch.txt @@ -0,0 +1,6 @@ +a +b +c +d +sss +asas diff --git a/2022/rust/src/main.rs b/2022/rust/src/main.rs new file mode 100644 index 0000000..205b69c --- /dev/null +++ b/2022/rust/src/main.rs @@ -0,0 +1,7 @@ +mod utils; +mod solutions; + + +fn main() { + solutions::day01::run(); +} diff --git a/2022/rust/src/solutions/day01.rs b/2022/rust/src/solutions/day01.rs new file mode 100644 index 0000000..508519d --- /dev/null +++ b/2022/rust/src/solutions/day01.rs @@ -0,0 +1,10 @@ +use crate::utils; + +pub fn run() -> () { + let data = utils::read_lines(utils::Source::Scratch); + + println!("Day 1"); + for x in data { + println!("{}", x); + } +} diff --git a/2022/rust/src/solutions/mod.rs b/2022/rust/src/solutions/mod.rs new file mode 100644 index 0000000..12b8f18 --- /dev/null +++ b/2022/rust/src/solutions/mod.rs @@ -0,0 +1 @@ +pub mod day01; diff --git a/2022/rust/src/utils.rs b/2022/rust/src/utils.rs new file mode 100644 index 0000000..d1151c9 --- /dev/null +++ b/2022/rust/src/utils.rs @@ -0,0 +1,24 @@ +use std::fs::File; +use std::io::{BufRead, BufReader}; +use std::path::Path; + + +pub enum Source { Scratch, Day(i32) } + + +pub fn read_lines(source: Source) -> Vec { + let path = match source { + Source::Scratch => "inputs/scratch.txt".to_string(), + Source::Day(day) => { + assert!(1 <= day && day < 25); + format!("inputs/day{:0>2}.txt", day) + } + }; + _read_lines(&path).expect(format!("Failed to load from {}", &path).as_str()) +} + +fn _read_lines

(filename: P) -> std::io::Result> + where P: AsRef { + let file = File::open(filename)?; + BufReader::new(file).lines().collect() +}