day 20 was a doozy

main
Shoofle 10 months ago
parent 02452722bf
commit 14d98a5f48
  1. 8
      day20/.idea/.gitignore
  2. 11
      day20/.idea/day20.iml
  3. 8
      day20/.idea/modules.xml
  4. 6
      day20/.idea/vcs.xml
  5. 7
      day20/Cargo.lock
  6. 0
      day20/output.svg
  7. 311
      day20/src/main.rs
  8. 1
      day20/target/.rustc_info.json
  9. 3
      day20/target/CACHEDIR.TAG
  10. 0
      day20/target/debug/.cargo-lock
  11. 1
      day20/target/debug/.fingerprint/day20-5957a2c0ba2264ed/bin-day20
  12. 1
      day20/target/debug/.fingerprint/day20-5957a2c0ba2264ed/bin-day20.json
  13. BIN
      day20/target/debug/.fingerprint/day20-5957a2c0ba2264ed/dep-bin-day20
  14. 1
      day20/target/debug/.fingerprint/day20-5957a2c0ba2264ed/invoked.timestamp
  15. 5
      day20/target/debug/.fingerprint/day20-5957a2c0ba2264ed/output-bin-day20
  16. 1
      day20/target/debug/.fingerprint/day20-cb29eaa541c15fba/invoked.timestamp
  17. 1
      day20/target/debug/.fingerprint/day20-cb29eaa541c15fba/test-bin-day20
  18. 1
      day20/target/debug/.fingerprint/day20-cb29eaa541c15fba/test-bin-day20.json
  19. 1
      day20/target/debug/.fingerprint/day20-e42180e615e523fc/bin-day20
  20. 1
      day20/target/debug/.fingerprint/day20-e42180e615e523fc/bin-day20.json
  21. 1
      day20/target/debug/.fingerprint/day20-e42180e615e523fc/invoked.timestamp
  22. BIN
      day20/target/debug/day20
  23. 1
      day20/target/debug/day20.d
  24. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed
  25. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.153pamcle2qzigat.rcgu.o
  26. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.16kahw812t8rvq45.rcgu.o
  27. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.19uc230oeti8tubi.rcgu.o
  28. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1abhk4p21t7q6d9l.rcgu.o
  29. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1ethz038qtga3jzx.rcgu.o
  30. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1eyrxrlb8xfpiga7.rcgu.o
  31. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1h9otqp4e49hz1bj.rcgu.o
  32. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1pwue3awfu7jgxbc.rcgu.o
  33. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1trkdqmw60oagppu.rcgu.o
  34. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.1w3zwl0ov5jh0jqa.rcgu.o
  35. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.24u131pae1z86f72.rcgu.o
  36. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.25z6wgxx9mcu0b5m.rcgu.o
  37. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.28dvbqzxm520qwha.rcgu.o
  38. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2aa2vl2b0y9m88oh.rcgu.o
  39. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2e6qpfyu36ozfwie.rcgu.o
  40. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2ea5ytrfzrb7mcby.rcgu.o
  41. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2gw2gamtwd50ip28.rcgu.o
  42. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2hesusfm0ip1aua6.rcgu.o
  43. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2inurcx7b5808kg9.rcgu.o
  44. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2mrehsfvqeaun8zu.rcgu.o
  45. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2uwaju2hvdo2991j.rcgu.o
  46. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2uwtlsrlz9uv1348.rcgu.o
  47. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2vx5s92b9kx56998.rcgu.o
  48. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2wqgqgved601rmxn.rcgu.o
  49. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.2yjhv2cpn5ixhk23.rcgu.o
  50. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3f7xh4nigupxlqk1.rcgu.o
  51. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3gx3l9a3twsz28zo.rcgu.o
  52. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3hkk6tibivihpdql.rcgu.o
  53. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3i1ub3uk0j8mgva5.rcgu.o
  54. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3i2e8onx7bof2usk.rcgu.o
  55. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3nntngekd3pwitfo.rcgu.o
  56. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3ohlbsddn6dx2hjv.rcgu.o
  57. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3v0ams87q2kjax2h.rcgu.o
  58. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3vc4ponecujdgpx3.rcgu.o
  59. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3wscrro04gkpcwbs.rcgu.o
  60. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3x4u6diqrz18fypv.rcgu.o
  61. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3xkikbi50wrsozbf.rcgu.o
  62. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3z69w2sgdy5guaom.rcgu.o
  63. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.3zjatt5pzgzv0qq5.rcgu.o
  64. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.41rtc4tqq8gqcci0.rcgu.o
  65. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.42mu7uxp1r832lw1.rcgu.o
  66. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.42vs840lpbpho1lz.rcgu.o
  67. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.438tplksdfe41kvp.rcgu.o
  68. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.462t2pvcqnm8meim.rcgu.o
  69. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4gxc0o1b2us4y275.rcgu.o
  70. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4rym9nenubai8nou.rcgu.o
  71. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4szqgq5bhsw1bj9q.rcgu.o
  72. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4ucazikukkkjsfgx.rcgu.o
  73. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4uzsh1gd7p1zov32.rcgu.o
  74. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4x4jknievzk3ct87.rcgu.o
  75. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4xftdecfs2c2x21g.rcgu.o
  76. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4xklrze6ts7emwjf.rcgu.o
  77. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.4z3tzk9nstgo04r3.rcgu.o
  78. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.50084gbq1tphj4ka.rcgu.o
  79. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.525vgquhfyrcyyxj.rcgu.o
  80. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.558vpwblplg33em6.rcgu.o
  81. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.569q7ul9e52da5sk.rcgu.o
  82. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.572d6as5o19mhgzt.rcgu.o
  83. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.57ap4ltuebgzbv2s.rcgu.o
  84. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.57la792wxxk3r0up.rcgu.o
  85. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.59mdmtm2jnam13i1.rcgu.o
  86. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.5ac3jz2w1iajbha6.rcgu.o
  87. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.5fv2meirqusqn79g.rcgu.o
  88. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.5g0j7z3c33688bn7.rcgu.o
  89. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.8bi0zlwgjyg4z8x.rcgu.o
  90. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.9yv2kl2rp85zv9i.rcgu.o
  91. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.bjjhgu8ik1eeuy3.rcgu.o
  92. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.cmksh89l15k27y1.rcgu.o
  93. 5
      day20/target/debug/deps/day20-5957a2c0ba2264ed.d
  94. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.d0a5bhuqkl3dwj0.rcgu.o
  95. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.e2vyyr2c7693t61.rcgu.o
  96. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.hn65yvmmjut2627.rcgu.o
  97. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.kwheo5lmg3uoili.rcgu.o
  98. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.lhj8mm6rlviwmpz.rcgu.o
  99. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.vkl0jozqde9rk5q.rcgu.o
  100. BIN
      day20/target/debug/deps/day20-5957a2c0ba2264ed.wvrlw1skmumcz7c.rcgu.o
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="EMPTY_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/day20.iml" filepath="$PROJECT_DIR$/.idea/day20.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

7
day20/Cargo.lock generated

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "day20"
version = "0.1.0"

@ -1,3 +1,312 @@
use std::{env, fs};
use std::collections::{HashMap, HashSet, VecDeque};
use Module::{Broadcaster, Conjunction, FlipFlop, Counter};
use crate::PulseKind::{High, Low};
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
enum PulseKind { High, Low }
#[derive(Clone, Debug)]
struct Pulse { kind: PulseKind, origin: String, destination: String }
enum Module {
Broadcaster { out: Vec<String> },
Conjunction { out: Vec<String>, memory: HashMap<String, PulseKind> },
FlipFlop { out: Vec<String>, state: bool },
Counter { out: Vec<String>, high: i32, low: i32}
}
fn main() {
println!("Hello, world!");
println!("Hello, AoC day 19!");
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
println!("wrong number of arguments!");
std::process::exit(1);
}
let file_path = &args[1];
let contents = fs::read_to_string(file_path).expect("Should have been able to read the file");
let mut rack: HashMap<String, Module> = HashMap::new();
for line in contents.lines() {
let (name, connections) = line.split_once(" -> ").unwrap();
let outputs: Vec<String> = connections.split(", ").map(|it| it.to_string()).collect();
match name.chars().nth(0).unwrap() {
'&' => rack.insert(name[1..].to_string(), Conjunction { out: outputs, memory: HashMap::new() } ),
'%' => rack.insert(name[1..].to_string(), FlipFlop { out: outputs, state: false } ),
_ => rack.insert(name.to_string(), Broadcaster { out: outputs } ),
};
}
// print out the rack and also tally up the listed outputs
println!("the rack looks like this:");
let mut all_listed_outputs: HashSet<String> = HashSet::new();
for (key, value) in &rack {
match value {
Broadcaster { out } => {
println!("{} -> {}", key, out.join(", "));
for o in out { all_listed_outputs.insert(o.to_string()); }
}
Conjunction { out, .. } => {
println!("&{} -> {}", key, out.join(", "));
for o in out { all_listed_outputs.insert(o.to_string()); }
}
FlipFlop { out, .. } => {
println!("%{} -> {}", key, out.join(", "));
for o in out { all_listed_outputs.insert(o.to_string()); }
}
Counter { out, .. } => {
println!("${} -> {}", key, out.join(", "));
for o in out { all_listed_outputs.insert(o.to_string()); }
}
}
}
// make sure all the outputs are present as outputs
for label in all_listed_outputs {
if rack.get(&label).is_none() {
rack.insert(label, Counter{ out: Vec::new(), high: 0, low: 0});
}
}
println!("let's fix up those conjunction modules so they know about all their inputs and are initialized properly to low.");
let mut conjunctions_and_inputs: HashMap<String, Vec<String>> = HashMap::new();
// go through and take note of every cnojunction module in our conjunctions_and_inputs collection
for (label, _module) in &rack {
match rack.get(label).unwrap() {
Conjunction{ out:_,memory:_} => { conjunctions_and_inputs.insert(label.to_string(), Vec::new()); }
_ => {} // get fucked!!!
};
}
// look at every module. if it's got a conjunction in the output, list it in the collection of conjunctions and inputs
for (label, value) in &rack {
match value {
Broadcaster{ out } => {
for o in out {
if let Conjunction { .. } = rack.get(o).unwrap() {
conjunctions_and_inputs.get_mut(o).unwrap().push(label.to_string())
}
}
}
Conjunction{ out, .. } => {
for o in out {
if let Conjunction { .. } = rack.get(o).unwrap() {
conjunctions_and_inputs.get_mut(o).unwrap().push(label.to_string())
}
}
}
FlipFlop{ out, .. } => {
for o in out {
if let Conjunction { .. } = rack.get(o).unwrap() {
conjunctions_and_inputs.get_mut(o).unwrap().push(label.to_string())
}
}
}
Counter { out, .. } => {
for o in out {
if let Conjunction { .. } = rack.get(o).unwrap() {
conjunctions_and_inputs.get_mut(o).unwrap().push(label.to_string())
}
}
}
}
}
// connect each input t othe cnojunctino module
for (destination, inputs) in conjunctions_and_inputs {
for start in inputs {
connect(start, destination.to_string(), &mut rack);
}
}
let mut high = 0;
let mut low = 0;
for _i in 0..1000 {
let (h, l) = push_the_button_and_count(&mut rack);
println!("there were {high} high pulses and {low} low pulses.");
high += h;
low += l;
}
println!("after 1000 pushes, we have sent {low} low pulses and {high} high pulses");
let product = (high as i64) * (low as i64);
println!("that's aproduct of {product}");
println!("the set of things outputting to rx is:");
let mut goes_to_rx: HashSet<String> = HashSet::new();
for (name, module) in &rack {
match module {
Broadcaster { out, .. } => { if out.contains(&String::from("rx")) {goes_to_rx.insert(name.to_string());} }
Conjunction { out, .. } => {if out.contains(&String::from("rx")) {goes_to_rx.insert(name.to_string());}}
FlipFlop { out, .. } => {if out.contains(&String::from("rx")) {goes_to_rx.insert(name.to_string());}}
Counter { out, .. } => {if out.contains(&String::from("rx")) {goes_to_rx.insert(name.to_string());}}
}
}
println!("{goes_to_rx:?}");
if let Conjunction{memory, ..} = rack.get(goes_to_rx.iter().nth(0).unwrap()).unwrap() {
for x in memory.keys() {
print!("{x}, ");
}
println!("are all options for what we're interestd in");
}
let things_to_watch: HashSet<String> = String::from("qq,sj,ls,bg").split(',').map(|x| x.to_string()).collect();
let mut i=1001;
loop {
let interest = push_the_button_and_watch(&mut rack, &things_to_watch, goes_to_rx.iter().nth(0).unwrap().to_string());
if interest {
println!("interesting things have happened on press {i}");
}
if i % 100_000 == 0 {
if let Counter { low, .. } = rack.get("rx").unwrap() {
println!("rx has been hit with a low pulse {low} times after {i} buttons.");
}
}
i+=1
}
}
fn connect(origin: String, dest_conj: String, rack: &mut HashMap<String, Module>) {
let conjunction_module = rack.get_mut(&dest_conj).unwrap();
if let Conjunction { memory, ..} = conjunction_module {
memory.insert(origin, Low);
}
}
fn push_the_button_and_count(rack: &mut HashMap<String, Module>) -> (i32, i32) {
let mut pulses = VecDeque::from([Pulse {
kind: Low,
origin: String::from("button"),
destination: String::from("broadcaster") }]);
let mut high = 0;
let mut low = 0;
while !pulses.is_empty() {
let pulse = pulses.pop_front().unwrap();
let _origin = pulse.origin.to_string();
let _dest = pulse.destination.to_string();
let _kind = match pulse.kind {
High => { "high" }
Low => { "low" }
};
//println!("{origin} -{kind}-> {dest}");
match pulse.kind {
High => { high += 1; }
Low => { low += 1; }
}
let new_pulses = handle_pulse(&pulse, rack);
for x in new_pulses {
pulses.push_back(x);
}
}
return (high, low);
}
fn push_the_button_and_watch(rack: &mut HashMap<String, Module>,
modules_to_watch: &HashSet<String>,
conjunction: String) -> bool {
let mut pulses = VecDeque::from([Pulse {
kind: Low,
origin: String::from("button"),
destination: String::from("broadcaster") }]);
let mut high = 0;
let mut low = 0;
let mut of_interest = false;
while !pulses.is_empty() {
let pulse = pulses.pop_front().unwrap();
let _origin = pulse.origin.to_string();
let _dest = pulse.destination.to_string();
let _kind = match pulse.kind {
High => { "high" }
Low => { "low" }
};
if modules_to_watch.contains(&_origin) && pulse.kind == Low {
if let Conjunction {memory, ..} = &rack.get(&conjunction).unwrap() {
let pulses: HashSet<&PulseKind>= modules_to_watch.iter().map(|x| memory.get(x).unwrap()).collect();
if pulses.contains(&High) {
of_interest = true;
}
}
}
//println!("{origin} -{kind}-> {dest}");
let new_pulses = handle_pulse(&pulse, rack);
for x in new_pulses {
pulses.push_back(x);
}
}
return of_interest;
}
fn handle_pulse(pulse: &Pulse, rack: &mut HashMap<String, Module>) -> Vec<Pulse> {
// a pulse has arrived!~ let's handle it.
let destination_module = rack.get_mut(&pulse.destination).unwrap();
match destination_module {
Broadcaster{ out } => {
// broadcast to all the outputs!
return out.iter().map(|d| Pulse {
kind: pulse.kind,
origin: pulse.destination.to_string(),
destination: d.to_string() }).collect(); }
Conjunction{ out, memory} => {
// update the memory.
memory.insert(pulse.origin.to_string(), pulse.kind);
// go through the memories and look for one thats low, in which case we output a low pulse.
for value in memory.values() {
if *value == Low {
// if any of the memories is low, output a high pulse
return out.iter().map(|d| Pulse {
kind: High,
origin: pulse.destination.to_string(),
destination: d.to_string() }).collect();
}
}
// if we've gotten here, all the memories were high, so send a low pulse
out.iter().map(|d| Pulse {
kind: Low,
origin: pulse.destination.to_string(),
destination: d.to_string() }).collect()}
FlipFlop{ out, state} => {
match pulse.kind {
High => {
// on a high pulse, flip flops produce nothijng
Vec::new()
},
Low => {
// on a low pulse, we flip it, and then send an appropriate pulse (high if it's on, low if it's off)
*state = !*state;
out.iter().map(|d| Pulse {
kind: match state { true => High, false => Low },
origin: pulse.destination.to_string(),
destination: d.to_string() }).collect()
}
}
}
Counter { high, low, ..} => {
match pulse.kind {
High => {
*high += 1;
},
Low => {
*low += 1;
}
}
Vec::new()
}
}
}

@ -0,0 +1 @@
{"rustc_fingerprint":14318102787793507742,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/shoofle/.rustup/toolchains/stable-x86_64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"cmpxchg16b\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_feature=\"sse4.1\"\ntarget_feature=\"ssse3\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.74.1 (a28077b28 2023-12-04)\nbinary: rustc\ncommit-hash: a28077b28a02b92985b3a3faecf92813155f1ea1\ncommit-date: 2023-12-04\nhost: x86_64-apple-darwin\nrelease: 1.74.1\nLLVM version: 17.0.4\n","stderr":""}},"successes":{}}

@ -0,0 +1,3 @@
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by cargo.
# For information about cache directory tags see https://bford.info/cachedir/

@ -0,0 +1 @@
{"rustc":4443399816165520464,"features":"[]","target":14331336351448024546,"profile":237655285757591511,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/day20-5957a2c0ba2264ed/dep-bin-day20"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

@ -0,0 +1 @@
This file has an mtime of when this was started.

@ -0,0 +1,5 @@
{"message":"unused variable: `high`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":8317,"byte_end":8321,"line_start":217,"line_end":217,"column_start":13,"column_end":17,"is_primary":true,"text":[{"text":" let mut high = 0;","highlight_start":13,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":8317,"byte_end":8321,"line_start":217,"line_end":217,"column_start":13,"column_end":17,"is_primary":true,"text":[{"text":" let mut high = 0;","highlight_start":13,"highlight_end":17}],"label":null,"suggested_replacement":"_high","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `high`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:217:13\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m217\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut high = 0;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_high`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
{"message":"unused variable: `low`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":8339,"byte_end":8342,"line_start":218,"line_end":218,"column_start":13,"column_end":16,"is_primary":true,"text":[{"text":" let mut low = 0;","highlight_start":13,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":8339,"byte_end":8342,"line_start":218,"line_end":218,"column_start":13,"column_end":16,"is_primary":true,"text":[{"text":" let mut low = 0;","highlight_start":13,"highlight_end":16}],"label":null,"suggested_replacement":"_low","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `low`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:218:13\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m218\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut low = 0;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_low`\u001b[0m\n\n"}
{"message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":8313,"byte_end":8321,"line_start":217,"line_end":217,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":" let mut high = 0;","highlight_start":9,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_mut)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":8313,"byte_end":8317,"line_start":217,"line_end":217,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut high = 0;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:217:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m217\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut high = 0;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\n\n"}
{"message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":8335,"byte_end":8342,"line_start":218,"line_end":218,"column_start":9,"column_end":16,"is_primary":true,"text":[{"text":" let mut low = 0;","highlight_start":9,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":8335,"byte_end":8339,"line_start":218,"line_end":218,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut low = 0;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:218:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m218\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut low = 0;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\n"}
{"message":"4 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 4 warnings emitted\u001b[0m\n\n"}

@ -0,0 +1 @@
This file has an mtime of when this was started.

@ -0,0 +1 @@
{"rustc":4443399816165520464,"features":"[]","target":14331336351448024546,"profile":13053956386274884697,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/day20-cb29eaa541c15fba/dep-test-bin-day20"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

@ -0,0 +1 @@
{"rustc":4443399816165520464,"features":"[]","target":14331336351448024546,"profile":13396965805329499462,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/day20-e42180e615e523fc/dep-bin-day20"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

@ -0,0 +1 @@
This file has an mtime of when this was started.

Binary file not shown.

@ -0,0 +1 @@
/Users/shoofle/Projects/aoc_2023/day20/target/debug/day20: /Users/shoofle/Projects/aoc_2023/day20/src/main.rs

Binary file not shown.

@ -0,0 +1,5 @@
/Users/shoofle/Projects/aoc_2023/day20/target/debug/deps/day20-5957a2c0ba2264ed: src/main.rs
/Users/shoofle/Projects/aoc_2023/day20/target/debug/deps/day20-5957a2c0ba2264ed.d: src/main.rs
src/main.rs:

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save