Skip to content

Commit

Permalink
fix: added serde json to manually deserialize aoc json input field
Browse files Browse the repository at this point in the history
  • Loading branch information
jortrr committed Jul 19, 2024
1 parent 04d0784 commit 9a8ce94
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 16 deletions.
4 changes: 2 additions & 2 deletions .aocf/cache/aoc2023_16.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"title": "The Floor Will Be Lava",
"stars": 2,
"solution": {
"first": "6906",
"second": "7330"
"second": "7330",
"first": "6906"
},
"input": "\\...\\..........|..\\........../...............................\\.\\.....................................-........\n..........................--............/.....-.../............-........................\\./.\\|\\...............\n...|.-\\.|.......|......../.....-........|........................\\......|..............\\......|...............\n...-\\.....................\\......../....../..............................|........-.........\\...-\\....-.......\n.........\\|............/-....-......-................\\....-........|./.........-..|....................|......\n..-.....\\........................-.....-..../..............||.............-.................|..........-.-././\n......................-\\......................................-/......||.........-.-......./..................\n|..\\................|.....\\.............\\.......|........-..................\\|.................|...-..........\n............................|.....|.......\\../..........\\......\\../..|..../........-..\\.-......-..............\n\\....-.....................\\....../............-/..|.........../-.........|.../................\\.......|\\...//\n.......-.-........../........-.........\\..../......................|.............|.....\\....|......../........\n.../......../.........|.....-.............|.....\\\\-.|..\\..........\\..|...............-.|...........-......-../\n............./.............../......./.................-.................|/...||............|.............|\\..\n...................-..................................../.\\..................|..........|........|...../..|./.\n.........................|......\\..../...........|..-......|..-.-../..\\.......\\............................|..\n.........\\..|...............//.........|................|................................./..-..-.............\n......||...........|...|../.............../....-......|..\\.....-..........\\..................\\.........../....\n............../-......|.................-......|........-...--................./.............|..........\\.....\n......\\.|./...........\\...................\\..-.........-.....-.-.......|./....................../.|..\\|.......\n./...........\\..|...................../....................................\\../.................\\...........\\.\n..............|............................./...\\.............../.....-.........\\./..-.../\\\\..................\n\\./|......\\............|.........................|....-../.......\\........./.............../-........../....\\.\n....-................................\\....................../.|...|.................-...|.......--............\n.......-....\\/../.................-/...-./...-...........................-.............\\...........|..........\n................................................\\........./............../.....|.......\\......|........\\./....\n..........-..../......-.............|...-.....\\..-......................-..\\.....|....../....\\./.....|........\n.......-...../..................-....../........./......./..............|......-....|....|.\\....|......-./-...\n......\\/.....................|.-.........-.....\\.....................-.-....|.................|.-\\./..........\n............\\...........-................|....|....|-......\\..|/............\\........-...-..........-....\\....\n...\\............-...........|.............|...............-......|.............\\..\\................\\..........\n...........................|..........|..................\\..\\........|...../......|....|..........-...........\n.......-.../..................-...\\\\.....\\..-.....|/..................................-.........../...........\n/......\\.\\........................../|........................-........-..................-..............-.|..\n../............|\\......|....|.........................../....-..\\.............../.............-........|......\n........./.........|\\........................|.\\....................|\\........................|....../........\n.../..........|......../....-......../.................\\................-...\\............/...........-....|...\n...................../...../../..-........\\/............-./..|................../.............................\n............./.......\\..-/.........\\..../..................|.\\...\\...-..-.-............\\..../....|........|\\..\n...../........|..............\\..|.|...|.-......-....\\.......................-.\\.......\\...........|...........\n..............\\..|................................/-.....-...|.............\\..//..\\......|...............|....\n...............................-......|\\............../.\\.\\............./......\\..............................\n............|/...\\.....|.......|..\\....................\\.../..................................................\n|........../......../............\\../...\\...\\.....-........|../................\\-.............../.........\\...\n.....|...-...................../..-...................\\........|./.......-...\\-.../....|.................|....\n...........-..................................\\.......\\....../..............................|.................\n........./.\\................\\...-.|........./......\\................-.../........|...\\.....\\.....|............\n.-....../......./....-...................\\.............-....................|.-.\\./........................\\..\n........./...../..........................-...............\\........-....................................\\.....\n\\..|...........................\\/...-................................................./.......-..\\....\\.......\n....-.|/../...../......./....................-..........-......-.........\\.........../...................\\....\n.................................../.........|...........................\\.....-..../.........................\n............/..../.../......\\........................-.......|............-........./|........-...............\n../......../..........-.........................................................-.........\\..-|...............\n...../../...................|.................|.........................................../......./..........\\\n...|..........||......................./......./...-..|..\\/......./................\\.\\........../...\\.........\n..-.\\\\..|................|....-.......................................-......../.../............|.............\n..............-../...............................-.......................\\....................|..........././.\n...\\............/.................|.-.|............./......|......-./...............\\.\\.................-.....\n.............|.............\\......|.................-|...|.........|.....-......../.......|...................\n...\\-............-..-................/.............-.......\\............\\.........-|...\\.............|........\n..........|.....\\...../...\\....../|.|.|......../-....--....\\........|...........|..........\\..................\n...............\\......./.....|............................|./.............-.|.......\\.-............\\.......|..\n....-..........................|\\....................................................................-........\n............\\........|...../\\/-........|./.......|..-........................../../.......-..........-........\n-..\\............\\..\\.../.......\\.........\\..............\\....../...........-.......\\....................|.....\n........|..........|.............|.............-..|..................|....-\\.././......|.............|........\n..../......................../|..|......................|..............................|...................-..\n.......-/.../........-........................\\....-./.-...........|........./....\\...........-...../.........\n........./-\\........../.................-.......\\...................-...\\.......\\.-...........\\...............\n.........................\\.../..........................||..|.|...............................................\n...................-........./..../........................\\................-.....................|...........\n...................................|.....\\...........|.........\\.../.-.-.......-....-....\\.............//.|.|.\n..../............|-.......././.........-............\\.....-......-................-......\\........\\.........-.\n.\\......................\\.|...\\.-........\\..............-..................-.........................../.../..\n..............|..\\../...............\\|..........\\./...................\\...........|...........................\n....|......\\.-\\.................-..................../........\\....-...../.............-.\\.|..................\n......................-.|..|........................\\...............-..\\..-..../....../...........|...\\.......\n...........|......\\................../....-...\\|................\\......../|........................|.........-\n...........-.............-...-................\\...-.......|.........../........-..............................\n............|................|....--.........../-.....|......\\.............../.........../...|................\n-.....\\............/....../.......|.........../...............................-.....//.................-......\n-..............|...........-..........|..-|-...-...........................................\\...........|......\n...../......|........-...\\.................-......|.......-.......................|..................././..-..\n\\..........................................\\...-..\\......./......-.......\\.....|..\\....\\.../.\\..........|...\\.\n............./.........-............../....|..../...-....|...-........\\............\\...................|......\n/.......|-..../..\\.....\\..............................\\............|..............-.....|..../............-...\n............\\................................................/......\\..............\\.|........................\n\\/..../.........|\\.....|.../....................../.../..-............-..........-.../.-..../.................\n.......|-..|...................../................\\..............\\............/........../\\...|..../..........\n........................................................................\\............/.....-.\\.-..............\n.......................\\.........../........\\......./.........|.............\\..|....................-.........\n.|.../-.......-.....\\...................|.........||..\\...|.-....|....\\..............\\.......-.|.......\\/.....\n........../.|.........|............../........\\...........|.-..................\\.\\-..........\\...-............\n....\\./..........\\.........\\../......||........\\..\\......-..........................................\\....\\....\n|...........\\.............../.....|............|..............\\...............-............|....\\.....-.......\n.||................................|..|..\\../...-........................\\..................\\.......|.........\n....................-.....\\..........................-|--|../.\\............................||......../........\n........|..../........................|........\\....-...|.../.............|.../../....\\..-..............-.....\n.......\\...\\......-...-.....................|....\\............-...|.-....\\.....-......-.......................\n..-......./...................../..../..........-\\......./..-./.................\\.\\..............|............\n....../............../................\\.........-......./..................................././...|...........\n......|-..................|-....|...../.|....................-............................\\...................\n...........|.......................................|....\\........./......./../......................\\|........\n..............|.\\........../.........................../......|.........................../............./../..\n.........-......\\........\\........-..........|...|..............|........./....-........../.././......./......\n............|.........\\.......\\.........|..............-......./.....|/....../......./....\\.........-\\........\n.............-.../..................-.......\\...................-/......-.........|........................\\..\n...............|.\\-|//..\\.|............................................/..../...........\\-....................\n..........|......./...\\../|.............................................................................../...\n...........................|.....--..................................-....\\...||-........./\\......-.....\\.\\...\n",
"brief": {
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ edition = "2021"
aocf = "0.1.21"
colored = "2.1.0"
regex = "1.10.2"
serde_json = "1.0.120"

[[bin]]
name = "day01"
Expand Down
34 changes: 21 additions & 13 deletions src/aoc_input.rs
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
use core::panic;
use std::fs::read_to_string;

use serde_json::Value;

pub fn get(year: i32, day: u32) -> Vec<String> {
let aoc_json_cache_path = format!(".aocf/cache/aoc{}_{}.json", year, day);
let aoc_json_cache = aocf::Aoc::load_json_from(&aoc_json_cache_path);
let aoc_input = if aoc_json_cache.is_ok() {
aoc_json_cache
.unwrap()
.init()
.unwrap()
.get_input(false)
.unwrap()
if aoc_json_cache.is_ok() {
let json_struct: Value =
serde_json::from_str(&read_to_string(&aoc_json_cache_path).unwrap()).unwrap();

match &json_struct["input"] {
Value::String(s) => s.lines().map(|s| s.to_string()).collect(),
_ => panic!(
"Could not find String input field in json file: '{}'",
aoc_json_cache_path
),
}
} else {
panic!("No cache file found: {}", aoc_json_cache_path);
panic!("Could not find json file: '{}'", aoc_json_cache_path);
aocf::Aoc::new()
.year(Some(year))
.day(Some(day))
.init()
.unwrap()
.get_input(true)
.unwrap()
};
aoc_input
.split("\n")
.map(str::to_string)
.collect::<Vec<String>>()
.split("\n")
.map(str::to_string)
.collect::<Vec<String>>()
}
}
1 change: 0 additions & 1 deletion src/day15.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,6 @@ fn main() {
.filter(|s| !s.is_empty())
.cloned()
.collect();
dbg!(&input);

let sequence = Step::from_string_list(&input);
let steps_sum = sum_steps(&sequence);
Expand Down

0 comments on commit 9a8ce94

Please sign in to comment.