Day 13. Got to try serde! fun.

master
Dustin Swan 1 year ago
parent ef825522fd
commit 86c696e61b
Signed by: dustinswan
GPG Key ID: AB49BD6B2B3A6377

89
day13/Cargo.lock generated

@ -0,0 +1,89 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "day13"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "itoa"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
[[package]]
name = "proc-macro2"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
[[package]]
name = "serde"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "unicode-ident"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"

@ -0,0 +1,10 @@
[package]
name = "day13"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = { version = "1.0.150", features = ["derive"] }
serde_json = "1.0.89"

@ -0,0 +1,449 @@
[[6,[[0],[6,7],[4,10,8,4,1]],1,[[2,6],0,[4,6,2,3],9]]]
[[10,[7],6]]
[[[2,5,[0,2,6,4],[6],5],[1,[1,4,10]]],[7,[[],6,[9],[0,5,8,8,1],8]]]
[[2,3],[8,10],[3],[[10,[1,3,8,0,7],2,6,4],[],[1,[9,1,4],[1,4,5,10],[]],[5,[],[7],2],[3,7,[10,3],7,[]]]]
[[[4,[0,8,2]],3,[[],[0,1,9,3,5],6],[]],[],[0,2,[[5,5,8],[8,6,5,10]],10]]
[[[4,[9],[9,8,10,1,0]]],[7],[8,[0,[8,9,5,3],3,[8,4],4],0,[[]]]]
[[[],[8,5],9,10],[7,6,10,1],[[7,[3,5,0,1],2,0,[2,0,3,7]],3,10,2,[8]],[[5,[8,2,10],[5,8,2,8,7]],7,10,[],[[3,10,4,8,4],4,9,10,2]]]
[[[[0,2,8,5,3],4],[[5,4,10],[],4,[3,1,4]],[],10,10],[[],[],2,10],[6,1,[6,[2,6,4,6,4],[6]]],[[],0],[]]
[[[],5],[2]]
[[7,4,6,[4],[3,[7],[3,1,8,9,8]]],[7],[[]],[0,[[1,3,1,10],8,8,7]],[3,[8,[6,3,1]]]]
[[[],6],[[],10,4,[5,8],[5,5,[6,4,2,6,3],10]]]
[[],[[6,5],8,5,[2,[2,2],[4,8,1],[]]]]
[[6,8,[[6,4,9,2,3]]],[4,[[6,1,4,7,4],[1,10,3]],4,1],[],[5,[[9,5,2],[0,5,4],[4],[8,5,7,8],3]],[]]
[[10,[]],[[[0,2]]],[5,1,1,[],1]]
[[9,7,1]]
[[8,3,[[2],2,[6]],4],[[9,[9,3],[10,9]],[[10,9,0,6,8],[10,5,7,7,5],[8,10],5],3],[8],[[[9],[1,3,7,4,3],6,[],6],2,8],[[6,[],8,5],0,[[2,1],7],3]]
[[3],[],[],[5,[9,[8,5,2],[3,3,6,9],[]],[[9,2,1],[],2]]]
[[[10,[7,0,5],4,4,6],[4,9],[],[[4,1,7,7],9,8,2],[2,[],9,[8,0,1,0,5]]],[],[[],5,[1,3,[5],[2]],10]]
[[[[],8],3],[8,[[4,5,6,0],2,[3,3,4,6],[7,2,4]],[2,[8],[8,5],[4,6,4,5,8],[6,9,6,6,6]]],[[1,6,3,6,9]]]
[[],[[10,[],[9,3,7,8,3],[3,5,1,9,7]],[1,[2,4],[10,8,2],4],9],[],[[2,6,8,[9,3,8,5,1],0],[1],2]]
[[[[8,6,1],[8],[2,8,7,4,0],0,8],[[],[],8,[4,4,3]]],[[2,2],[8]],[3,[[3,7,10,0,10]]]]
[[9,[[2],[]],0],[],[5,[[5]],[[6,9,3],[]],1,5],[6,[8,5,9,[7,7]],[],3],[]]
[[7,10,2,8,[[4,9,0],[0,2],0,[6,1,3,5]]],[[[5]],[[4,9],9,[8],[2],[7,10,2]],9,2],[7,6,[[3],1,0,[7,8,0,2]],8],[0,6],[4,9]]
[[10,5,[],[[4,5,6,2,3],3,2],[3,[2],[2],3,[9,1]]]]
[[1,8,3,[[5,9],4,9,[8],[2,3,6,4]]],[8,6,8,4],[[3,0,[8,3]],[4,3,0],8,[2,6,10]],[10,7,1,10,3],[2,7,[],[]]]
[[[[8]],6],[[[8,10,8],7,8],[]],[[9,5,[10,3,2,4],8,[3,0,1,3,4]],[[10,6,0],2,7]],[[[],[5,4,6,6,5]],[],[[0,1,0,5,10],7,[],5,[4,10,4,7]],[]]]
[[[[2,4,3,1,6],5,[3,10,5,4,9],[3,4,8,7,6],[]],8,[8,1,4]],[[[1,9,6],0,7,6],3,10,[[3,8,9,5,6],[9,9,5,9],[2],8],8],[0],[10]]
[[[10,0,10],10,7,10,[7,4,6,[]]],[4],[5,0,4,[]],[]]
[[[4,[7,2,8,4,1],[10,7],4],5,[]],[5,3,4],[[],[0,4,3,[4,0,8]]],[]]
[[4,[]],[[[10,4],[1,6,0,3]],[[1,6,1],5,[],1,4],[[4,3,8,0,3],0],10],[[9,[7,0,0,10,6],[3,8,7],2,[1,2,6,0]],[0,4,3,[1,3,2,8],[7,0]],9],[],[]]
[[6,8,[[3],8,7,10]],[[[0],10,[5,8,4],9,[1,3]],[3,6,[3,4,0,9]],1,[0,4,[0,7,8],3,6]],[5,[],[[9],[2,0,10,8],5],7,0],[[9,6,[6,6],10],[],2,[[2,1,9],[]]]]
[[2,2,5],[[0,[1]],3,4,[[5,6,2],8,[1,5,6],[10,3,0,3,5],9],[[7,10,6,3,7],[9,10,0,9,4]]],[[[9,9,8,7,3]],1],[[],10,6],[[7,[2],[7],0,6],[8,[8],4,9],4,8]]
[[5,[1,[0,10,9,8],6,3,7],[[5,9,1],9],[10]],[3,[9]],[10,5,[10,2,6,[],[4,3,2,7]],4]]
[[2,[[3,8,3,0,5],[9,2]],[[6,3,9]],[1,8,10,[],4],5],[[6,[4,4,2,10,9],[3]]],[0],[10,[2,1,[],[3]],8],[10,3]]
[[[10],[],1,7,[[],9,[5],[9,4,8,0,4]]]]
[[],[[[2,2,5,1,4]],[7,10,[2,5],1],[],0,3],[[],[6,8,3,2],5,9]]
[[4,[4,[],[9,2,10,10],10],[3,[],[]],[[5],[9,9,8],4,[2,5,6]],[0,[0,6,0]]],[],[8,[5],1],[[10,2,9],[],9]]
[[2,[4],[[]],[]],[[8,8,[],4],10,9],[[[4,2,10],5],5,[3,[],[8],[2,9,6],[3,6]]]]
[[],[],[8,[8,0],10,[10,[10,6,4]],0],[10,1,[1]]]
[[[],[[],[]],[],[]],[[],0,10]]
[[],[],[]]
[[5],[0,[6,0,[4,3,1],4],7],[10,[[]],4,[[0,1],4,[5,4,9,2],0]],[10,4,5,8,10]]
[[[[5,3,7,8],[],[1,10,6]],1,[],[6,[3,7,3,7],10,5,8],0],[[7,[],6,[1,4,8,2,2]],0,6]]
[[[[]],[],9,7]]
[[[9,5]],[[5,9]],[]]
[[[9,1],[],[]],[2,0,[6,9],9],[7,[[],[6,8,6],[7],2],[[]],[10,[3,2],[3],[9,2],10]]]
[[],[0,[[]],7,4,[[],8,[10],[]]],[[1,[6,6,0],[2,2,8],[3,3,8,8],[1,5,9,2,6]],9,1],[]]
[[],[10,[[],9],[[0,8,9,10],9,[8,2,5]]],[[6],[[],10,2,[6,10,1],5],[4],[3,[2,4,6]],[4,[],[3,3,0],[7]]],[3,10,8]]
[[[7,[10,7,7,0],0,5,[6]],[]],[[0],[2,7,9,5],4,[2,[4,2,4],[4,4,0,1]],[7,[3,0,9,9,2]]],[[3,7],[5,[6,3],9,[]]]]
[[],[3,1,5,[[],[4,3,5,10],5,[1,8,4,5],[]],[6,[7]]],[7,[[4,9,5,3,10],7]]]
[[2],[],[[[5,6,4,7,1],[],4,5,[8,10]],5],[2,7],[6,[],[[9]],2,[[5],[5,6,9],1,[5,0,0],[6,8,7,5]]]]
[[],[[],5,[2,[0],[6,6,2,5,9],[0],[4]],9,9],[2],[8]]
[[9,10,[9,[0,5,9,8],4],[[5],1,[3,6,10],[3,8,4]]]]
[[[0],[10],1,[[0],8,[]],4]]
[[[4,5,[6,8,6,9,2],[1,0,6,2,9]]],[[[10]]],[7,0,[[4,8,7,9],[7,2,4],8]],[8,3,[],10,7]]
[[[8,2],0],[1,[]],[[0,1,[2],6],[[8,4,8,0,3],[],1],10]]
[[[7],[[3,0,10,9,8],[7,0,7,3],8,0,0],[[1,0,6,8,7],[8,3]],[[5]]],[[],[[9],[8],10,[10,4,7,5],[6,1]],1],[[[],[9,1,6,3],[5,8,2,7]]],[[[8],8],[[0,2,6],[4,0]],[[9,8],[3]],2,[[0,8],[10,6,4,10],4,5]],[[[8],5,3,[2]]]]
[[[],[9,[],[3,2,4]],6,[3,[5],[2,2,8,6,10],5,[]],4],[[[8,7],2,9,[1,0,2,7,4],9]],[]]
[[],[[],[]],[]]
[[],[[]],[[],4],[3,[],[[4,8,8,6,6],[3,2],8]]]
[[[0,4,0,[2,7,7],[0]]]]
[[[6,[7,1],[5,10],[],[0]],[10,9,[5],8,[4,2,2,7]],[3]],[9],[6,7,9,[3],3],[0,10],[[],1]]
[[6],[[[],[1],9,[0,2,2,7],6],8]]
[[7,3,[[],4,[],8,[10,4,3,5]],[1,[9,3,4,6,9],6,[]]]]
[[],[[[],[],7,[0],0],4,8],[4,10,2,2],[10,5,3]]
[[8,5],[2,10,0],[[[7,1,0,3,4],[9,2,4,2]],[[9,1,6,7,7],[5,2,8,7,3],[8,1,5,1,7],[],[]],[[10,1,10],[5],1]],[3,0,0,[],6]]
[[2,9,8,[],[]],[[[3,1,9,4],[6,10,4],1,9,10],[7,2,4,[10,8],4],0],[[],[[3]],[[],2,[5,9,2,3,3],[6,8,2]]],[[10,[5,1,3,5],10,9],0,5,10,[[],[0],5,3,3]],[0,[8,[4,9,2]],[[5,1,1,2],[9,4,3,10],6,[9,5],6]]]
[[9,[2,[1],4]],[],[9,[8],0],[10,[[6,6,10,1],9,10,4],3,[[1]]]]
[[2,2,7],[[],10,8,[4,10,5,[3,5,1],5],8]]
[[],[],[10,5,0,[[8],9,[10,2,9,8],[8,2,4],[8,1,6]]],[9]]
[[[[10,7,2],[5,9,5],[3,5,3]],[[9,8,7,2],4],0],[[8,1],[[10,10,7],6,5,9,6],0],[[9,[9,3,0,3],5],7,[[]]],[[1,[7,10,8]],2,9,[[4,1,4,1]],8]]
[[[]]]
[[2,[],[10]],[]]
[[[[1,1,4,2,9],1]],[10],[]]
[[0,5,[4,9]],[[],[[8,0,7],10,5],[],[[4,1]],[9,[9,6,3,7],[4,2,8,4,2],0,9]],[],[],[2]]
[[7],[2,[9,2,5,0],[3,[4,1],[4,8,3,8],[0,10],5]],[3,[10,[4,2,2,2],[0,3],[7,2,9,2,9],1],[[1,3],[10,6],6,8]],[],[1,9]]
[[5],[[[10,1,1,1],[9,9,0],[6,9]],3,8,6],[7,3,5],[[[0,0],[5,6,10,8,8],[10]],[1,10,2,0]],[]]
[[[[2,10,7],[1]],7,[],[[0,4,8,5]],8],[[[9,8,2,1],[7,10,8,9],3,[]],[],[1],[0,[5,8,7]],[[],[1,9]]]]
[[5,10,[[9,7,4],4,[4,10,5],[5,1,0,4,5],[8]]],[[7,[0,9,4,8,7],[1,8,4]],10,[],[9,[7,7,2,5],[8,9],[10,6,4,4],[9,2,6,3]],[[3],4,8]],[],[]]
[[5],[[4,8,4,[5,3,0,0,8]]],[8,[[7,8,5,8,8]],7],[9],[[3,[4,6],[],[6,6,1,8,8]],9,[],0,3]]
[[[2,0,8,[2,9,5,9]],[[],[]]],[6,4,10],[[8,4,5,[10],6],7]]
[[1,10,[[3,4,1],[],10,[6,4,7]]]]
[[[[2,10,2],[5,8],[],[],[3]],[[3,8,3,5,2]]],[[7,[2,2,5,5]],[6]],[[[10,10,8,2],[9,7,2,1]],[2,9],4],[0,[]],[]]
[[10,0],[],[8,10,7,[]],[[[10],[6,7],2],5,7]]
[[],[[6,[3],[8,6,7,3]],[3],[[5,10,8,3],0,[2,6,9,4,6],[1,5,6],0],10,[]],[[6,6,[],10],8]]
[[9],[8],[0],[6,4,[[],[4,4,2,4],[3,2,9]],[5,[8,2,5,9,1]]]]
[[[[6,5],5,1,3],5,6,5],[1,[]],[[],10,4],[[0,[4,9,10,10],[1,8],2],2,0,5,[[4,3,8],7,[7,4,1,9,2],6,[6,7,10,0]]],[0,1,6]]
[[],[4,[7,1,2,0,7],0,2,8],[],[[],7,[6,10,[0,7,2],8,3]],[]]
[[0,[[9,8,2,9],[6,5],3,1]],[[[6,4,3],[3,10,10,10,3],[10,1,6]],[5],8,1],[6,6,[[8,4,10]],7]]
[[[],2,[],[[0,1,5,0],4]]]
[[],[[],4,1]]
[[[5,[5],5,9],6,1,[8,5],6]]
[[1],[[10]],[1,[0,9]],[],[[[],7,[3,3,6]],[4,[9,6,2,4],[9,3],5,[4]],[[10,9,7,0],8,[6,0]],[8,[8,0,5,9],1,9,6],5]]
[[],[8,[[8],2,2],[]],[[1,7],6,[[0,3,9],7],0,6],[5,[[8,2,7],3,6,0]],[[5,4,[2],1,2],2,[[2,1],[9],[2,4,3],7],[]]]
[[[[3,10,1,4,9],[9,4,2,10]],[1,5,[3,8],4],5,[2,[]],[2]],[7,[[3,7,2],[0,8,3,8],9],6,[],[]],[[],[[0],[6,10,9,4,1],7],8,[[5,9,4,2,0],3,5]],[8],[]]
[[[[]],[0,7,2,2]],[],[],[[2,[7,4,5,3],[],3,10]]]
[[0,[[]],2,6]]
[[[7],[],[8,[10],[10,9,1,7]],5,[]],[[7,[1,2,6],4],[[6],[0,7,5]],[[10],[9,9],[0,2,9,3],[6,10,9],[]],[9],9],[],[1]]
[[3,[[5,6,2,1],7,[8,6],1,0]],[]]
[[[[7,9,3,8],4,[2,9],[4,1,10],7],9,1,[10,[9],[0,6,9],[1,2],2]],[],[1,5,2],[2,[],1]]
[[10,8,[[5]],3],[]]
[[[0,[8],[1,5,7,7,10],3],[[5],9],[[0,7],[7,10],2,[10,8,2,1,9]]],[[[],[2,1,10]],2,[9],1],[6,[[4,6,6],[3,4,6,10,10]],3],[5,9,8,5,[[4,4,1],8,6,[6]]],[10,[[],[9,5,1,4,9],8,[2,7,3,8,2],8],4]]
[[[3,4,5,[10,4,7,8,1],4],6],[[[4]],1,[10],5],[3],[[6,7,1,2,9],[7,[1,5,10,4],[6],[5,3,10,9,6],7],[2],[[7,1]],[5,9,9,5]],[0]]
[[[[8,5,7,1,4],6,[7,1,10],[],[3,3,3,7]],[[4,1],8]],[[[0,7,10,4],5,3,10,6],3,9,[]],[6,[5,8],[]],[0,5]]
[[8,2,3,[[1,7,10],5,4,[6,2,6],[8]]]]
[[3,[]]]
[[[10,[10],3],5],[[8,6,4],1,[[0,1,1,4,2]],[[8,1],0],[[6,7,5,5]]],[[[2,8,1,0,7],[8,7,7,1],[3,2,8,8,8],[8,3,8],[8,5,7,9]],1],[9,[4,1,10]]]
[[10,6,7,[[6],[2,4,9,8],7,[5]]],[1,1,[3,[6],[]],[8,[4],[4]],4],[[[8,5,9],[6,1],6],[5],3],[2,9]]
[[[[2,10,4,8,7]]],[7,0],[],[[],[10,[],[10,4,3],4,7],5],[9,[7,10],[]]]
[[[2],[[3,9,2],[],7,[8,8,2],[5,9]]],[[]],[[10,[],3,6,7]]]
[[[9,[8,6,6],[10,8,10,0]],2],[1,5,6,5,6]]
[[1,4,7,[4,10,[9,10,2],8,8],[[7,7,9,0,10],[0,3],2]],[],[2]]
[[2,5],[[6,[],[8,8,5,0],1],3,6,9],[[2,5,2,1,[6,8,0,6]]],[],[7,0,[1,[6,6],[1,1,0],7],2]]
[[[[]],5,[[3],3],[[10,3,1,5],8,8,0]],[2,[[7,0,6],[9,10,2],2,7,[4,4]],[3,9],8,0],[7,0],[[[1],[3],[5],[]]]]
[[1,5,[[1,6,9,8,0],[],10,3]],[],[],[[2,[7,6,8],[1,3]],[9,[10,1,4],[5,6,5]],[7,[3,5,2,5,2],[4,9],[6,9,8,7]]]]
[[1,[5,9,3,5,7],[[1,0,1,0],1,[3,8,2]]],[7,[[],2,1,2,1],[[3],6,9,[0,6,9,4]],[[3,3,3,3]]],[[[9,5,5],5,[3,5,4,0],[8,6,2,6,9]],[[5,10,8],[0,6,6,0,3]],[9,5,10,5,5],6,4],[[[0,5,0,3],[3,1,3,7],[4]]],[[6,4]]]
[[[[10,1]]],[[9,[3,3,4],2],[[5,3,8,9,6],4,[7,0,0,9],2],10,[],10]]
[[],[[[1,0,8,5]],10,[[5,6],[0,1],[0,7,2]],10,[6,0]],[3],[],[[6,[10,2,4,7,1],0,[6,6],5],[[6,9],[1,3]],[10,[9,10,6,1],0],[4,[10,7,3]],[[5],5,2,[7]]]]
[2,10,6,3]
[2,10,6,3,2]
[[4,2,1],[[[1],[6,5,3,7],[4,7,6],8],[[0,3,4],[3,9],[3,7,6,4,0],[3,8,0]],[5,[7,9,6,7,10],[1],[8,9,6,4,9]],[6,5,7,3]]]
[[[],[3],[7,[4,7,3],[10,6,7]],10],[8,[0,3],[0,3],[4,[8,6,3],8,0,4],[3,[1]]],[8,0,[[5,2,2,7]],1]]
[[[[7],8,4,2],1,[4,[10,9],[3,2,6],3,[5,0,2,9]],[9,[0,7,2,2],[],[],3],7],[]]
[[4,0],[0],[]]
[[[[],8,9,[0]]],[],[[8,[6,4,9,7],[2,7,6,1],[1,7,2,8],[4,8,9,4,0]],[5,1],6,9,4]]
[[8],[[[2,9,1],10,[1,2],[]],5,[]]]
[[[6,0,[10,3],6],1,[5],6],[5,1]]
[[[5,[4,5,2],3],[4,1],[[1],9],[9,10,[],[10,0,7]]],[[[],2],[[]],2,[0,6,10]],[5,6]]
[[[1,[],4,7],9],[4,5,9,[]],[],[4,10,4,[10]],[]]
[[2,9],[]]
[[9,[[5,5,1,4,4],[8,4,0,6,0],3],4,8,10],[[9,4,8,3,[0,6]]]]
[[2],[5,[3,7,[7,4,6,1,3],10,[2,6]],1,6],[10,3,[6,7,[2,4,8],[9,8],8],0,[]]]
[[[[0,5,4,1,4],[2,5,3,3,10],3]]]
[[8,1,5,5]]
[[[0,[5,8,9,5,4],[9,1,3],[9,10,7,0]],0,[4,9,6]],[[[1]]],[[10,8,3],4,[],[[5,4],2,2,4,8]],[[[],[2,2],8],[3,3,[6,9],4]],[5,1,2]]
[[[[],10,[8,3],2],[[5,3,8,8,4],1,7],[[4],[1,1],7,4,7]],[[[6,7,10,7,8]],[[2],0,10,[0,7,7,6,10]],[7,10,0,4,[5]],4]]
[[3,4],[[[1,6],1],[[],10,8,[6,8,8]],9,7]]
[[],[[[7,10]],3,0,[[],[],[8,7]],[[8,3,5],[6,4,2,8],2,[2]]],[7,10,7,[5,5]],[[8,[2,7,6,2],9,6,9],8,[[6,3]],5],[[[],7],10,1,7]]
[[],[],[[[3],3],2,6,10,10],[10,[],6]]
[[0,[2],4],[3,[7,2,2,8],5,[[8]],8],[[],[[],[10,8],3,6,[]]],[6,[1],[2,[],4],[[7,2,4,6],[7,1,10,4,4],8,7]],[7,10,[3],0]]
[[0,2],[],[]]
[[[6,10,[]]],[[1,[4,5,5]],[[]],[5,[],6,[0,1,8],[2,1]]]]
[[[3],[5,[5,4,1]],2],[],[],[[[4]],[[8,2,10]],10]]
[[[[6,2,6,1],[],5,[4,8,5,1,1]]],[10],[[3,0,4,5],4,4]]
[[]]
[[1,4,6,[[4],5],[[7,5],[],9,2]],[]]
[[[0,[]],5,[[7,0],[10,5,9,2],[1,0,6,5],3,[8,9,4,4]]],[[[0,8,10,3],10,0],10,[[7,8,2,8]],[5,5,1,[9]],[[6,5],6,5,10]],[1,[[0]],2,8],[[7,[7,5,1,10,1],7,[6,10,1]],[]]]
[[[9,6,[10],[0,10,10],[8,1,7,9,7]],10],[[0],3,[1,[8,5]],[2,5,3,[]]]]
[[0,6,[[7,5,2,8,8],[4,6,0,10]],[6,[6,6,5,3,5]]],[5,6,[1,[6,0]],[7,[9,0],[10,4,5],[2,4,10],[4,6]]],[[],5]]
[[[10,[6],[1,6],[5,7],9],9],[2,9],[],[[[9,7]],0,8,0]]
[[[],4,[]],[2,2,3,3,3],[[[8,1,2,9,2]],4],[1,[[],[],7,5],[0,[2,6,8,4]]]]
[[9,[[4,5],9,[]],0]]
[[[],9]]
[[7],[[2],7],[2,[8,[5,5],8,10,3],1,[[3,0],[0,1],2],10],[],[[8,[10,2,0,10,0],0,1]]]
[[3,8]]
[[],[[]],[0]]
[1,0,0,5,1]
[1,0,0,5]
[[],[[5]]]
[[7,8],[[5,[10,6,0,4],[10,9,9,4,6],[3,7]],[[],7,[7,4],6,3]]]
[[[3,[0,5,4,1,3],4,[10,9,10],[9,2,6]]]]
[[5,6,0,3],[],[0,[6,2,9,[0,8]],[0,[5,7,4,3],[6,9],[3,8,6,6],[9]]],[]]
[[9],[1],[6,[[1,1],8,5]],[2],[10,[[4],[4,6],[4,3],[2,5],2],[[5,3,8,5,3],3,2]]]
[[3,[],1,[[1,0,10],9,3,[8,9,8,1,9]]]]
[[5,[9,[1]],[],[0,5]]]
[[[9]],[10,10]]
[[[[0,7],[6,6,1,2]]],[8,[[4,4,10],[3,7,2,9,2],[4,9],8,7],10,0],[10,4]]
[[8]]
[[[[1,6,0,2],[2],6,4]],[[1],[[1,1],7,8],5,[0,[],[6,3,4],[0,2,9,2]]]]
[[3,[[4,4,0,5],[5,1,4,8,3]],[]],[]]
[[[[3]],[[9,2]],[3,5,[7,2,9,9],[6,3,3],[5,6,8]],1]]
[[5,[[3,8,2,2,0],[0,9,2]],10,[[],[1,10,7,0],[5,10,7,6,6],[]]],[]]
[[8,[[9,5,0],[7]],[[9,0,3,7]]],[]]
[[6,7,4,5,0],[10,[[5,3,8,3,8]],0,10],[9,3,[[10,3,2,4,10],7,[0,10,10,1],6]]]
[[10,[[],0,[5,9,9,1,5],[2,0,10,9,9]],4,[0,[],[0,6,7],[5],8]],[],[7,6],[7,[[8,10,2,2,4],[],[8,3,3],[2,1,6,9],[1,7,7]],7]]
[[[],[[0,6],[5],[9,1,9,2,10],[9,2,4,7]],[2],5,1]]
[[9,[]],[5,[[1,2]],4,[],8],[[[5,2]]]]
[[2,4,[4,[9,3,6,6],[0,0],1],1,0],[8,10,[[1,9,6,0]],4,[[0,10,7],5]],[],[]]
[[[[8,1,1,8],10,3],[[8],10,8,9],5],[5,[],1,9,[[0,4,7,3,9]]],[],[2],[[1,8,[2,4,5,6],[9,9,4,7],[5,0,10,8,2]],[9,[],[4,5,0]],[9,[10]]]]
[[],[[]],[[5,4,[7,0],[4,6,5],9],[[10,9,0]],[[7],[1,4],2],2,10]]
[[3,5,7,[0,0]]]
[[],[[[9],5,2,0],9,0],[[5,[0,6,0,10,1]],[9,[5,8,10,6,9]],5],[1,[[8,10,1,0]],8]]
[]
[[[4,[3,6],8,5],[[2,1,0,3,4],[3,8,10],7],[[0,1,5,0,8],[4,1,8],[]],[[10],3,2,[6,2,1],[10,4,10]],[10,[2,9],3,6]],[],[[[3],[10],[8,5,1],[10,6],4],[5,[1,2],3,4,[]],[2]],[5,8],[[[3,4,3],[1],[],5],3,7,8]]
[[[],[[6],6,[7,2],[8,7,0,10]],[0,[8,10,7],4],[7,6,9,2,4]],[3,6,[[2,5,7]]],[[8,[9],8,[],9],5],[3,[[],1,7,7]],[4]]
[[[0,[3,5,9,0],[5,2],8,6]],[3],[8,[8,6,[8,1]],[[8,4],[3,0,7,4,2],[6]],7,[4]],[[6,[4,1,10,3],[5,8,6],[3,10,1,3]],8],[5,[],7,[1],[1,[2,2,7,10]]]]
[[5,1,[[],[]],5,3],[5,[[],8,0,[6,7],2],6,1,[3,8,8,0,6]]]
[[],[],[0],[7,4,[[5,7,3,5,1]],9],[]]
[[5],[[[7,8,0],4]],[],[10,6,[[4,6],6,1],8],[[[1,8,7],6]]]
[[],[[[],[6,4,1,9,10],[6,9,2],[10,2,2,8],[]],[0,10]],[[[3,2],2,5],[],[],10]]
[[0],[3],[0,3,[8],[],[[7,0],0,10,4,5]]]
[[6,[7,[],[6,2,5],[]],[5,[8,7,9],5,[4,1,6,9,7],5],[9,[],1,[10],7],1],[],[3,4,[6,[2],7],6,8]]
[[[2,[4,2,7,7,9],0,[6],[5,1]],0],[[],[2,[1,7,3,7,5]],2,[],[[10,6,8,5],5,0,[0,10,8,2,0]]],[[6,[],6,[]],[[10,4,4,4,3],4,[8,0,5,1,3]],[2,[6],5,8]],[6],[[[10,0],9],[[],8,1],10,[[]],9]]
[[5,[7],[1,10,6,9,9],[8,0,5]],[]]
[[[[9,4,9],[],3,[],[8,4,2]],9,1,[[10,10,4],0,6]],[[[]],[6,[4,4,10],4,[3,2,4,0,3],3],[],[[10,1,10,9],5,[3,5,5]],6],[],[6,6,3,5]]
[[9,3,[],8],[0,[1,0,5],7]]
[[8,1,1,[]],[1,[],[[9,10]],4]]
[[2,3,9,6],[[[7,9],[3,7,4]],7,10,[]],[]]
[[[[4,6]],7,9,7,3],[[[7,2,8,3,1],10]],[7,5,8],[[[2,6,7,10,5],1,9,3,[]]]]
[[4,[[10]],4,[6,[9],8,[]],[]],[1],[9],[[4,5,[1,10]]],[2,9]]
[[0,[[0,3],[7],[1,10,6,2,4]]]]
[[[4,0,3],4,8,8],[],[]]
[[[],[[0,8,8]]],[5],[8,8,0],[4]]
[[[[],[8,5,3,6],[1,10,5]],[[],[1,7,10,9,7]],2,[6],8],[]]
[[[[4],8,[],[0]],8],[[],[[6,9],[2]],[5,0,6,[10,6,4]],[]]]
[[10,[[0,2],[4,9,9]]],[],[2],[[[8,9,0,1],9,8],0,10]]
[[[5,7]]]
[[[2,6],[[6,2,8],10,1,6,[5,10,0,5]],[3,1,[4],[7,7]]],[7,[[7,0,4],2,7,0]],[[4,5,[4,4],[1]],[],[[3,9,2,2],4]]]
[[[[7,3,10,2,1],[10,5,4,6,1],9,9,[]]],[[[7],10,[5,3,2,7]],[[1,0],6,[0,10]],[[0,0,9],[1,6,2,0],8,9],[[6,9,3,8,0],[8,8],[8,3],[5,4,1,1]]],[6,[5,[],10,2,4],[0,6,[6,0,0,10,8]],[[],[1,3,1],7],5]]
[[4,[7,[5,3,2,7,7]],6,[],[5,[6,6,0,2,6],8,[10,2]]]]
[[[1,[],5],[],10,5,1],[[[],[7],2,[4,7],[1,1]],[9,[8,1,10,8,1],[2,3],[10,9],10],6,4,[10,2,[6,2],3]],[[4],[[],7,[8],[1,5,6]],[[],[7,3,6,5],2],[10,[2,9],5,[7,4],[4,6,4,8,4]],[8,0,[],6,[0]]],[[[9,0],[6,10,7,4,10],9],[]]]
[[[1]]]
[[8,[9],[7,[7]]]]
[[[3,9,[9],[10,8],[5,9]],4,[8,[5,4,10,10,8],[],[10,3,5,7,7]]],[],[[[9,3],1],0,[5,[0,4,3,1],[]],[[],2,[10,0,8],8,[]]],[[0,10,5,[]]]]
[[2],[7]]
[[[],9,3,[[4,0,2]],[]],[[3,[4,7,10,5,8],3,10,[1]],[3,[],[1,2],[0,8,7,1]],0,1,2],[0,6,7,[[0,1,5,7],[7,4,2,8,5],5]],[]]
[[1,1,[],[[8],8,2,[10,8]],5],[],[10],[9,[4],[[],7,[7,5,9,9,1],5]],[6,0,[]]]
[[[[9,1,4]],[[6,8],[3,5]],[4],[6,[2,9,7,4,10],4,5,[2,2]]],[7,2],[2,[[6,7],[],[4,0,5],[6,7]],[],[[],[10,1],2,[],0]],[],[[10,1],3,6,[[],[8,10,9,3],[4,1,8,6,5]],0]]
[[0,[0,[1,6,4],2,7],4,[],[3,[],6,5,[7,5,0,3,8]]],[],[[[10,6,4,2],9,[],3],6,6,0,8]]
[[5],[[[]],[[7,2,1],10],8]]
[[[1,[2]],[1,9],[2,4,3],2,[[0],2,[1,1,7,10]]],[]]
[[[10],[[7,10],4,10,9],7],[[0,1,8,1,9],3],[[],9,[[0,8],[0,9],[5,7],6,0],[[],2,[],3],6],[6,[[],1]],[6,[[4],[3,7]],[],[3,7,[8,4,8]],10]]
[[[8,[6,10,6],3]],[7,[]],[7,[],3]]
[[],[]]
[[8,6,[[2],[6]],3,6],[],[3,9],[]]
[[9,9,[[9],[6,5,7]],0],[[],8,10,10]]
[[3,1],[4]]
[[[[3,2,0,3,1],[1,9,6],7]],[7,[9,9],2],[4,7,7],[[[3,2],10,[]],0,[3,[3,5,4],[5,8,3],[10,2,9,8],[10,6,4,1,2]],[[7,7,8]],6]]
[[[1,[8],4,[3,2,3,3],4]],[[[10,3]],4,[10,[5,3,2,8],[6,4,8,5],6,0],8],[[[7,4,7],[7,8],4],[10,[5,3,8,8],9,[]],[]]]
[[[2,[8,2,3,3,2]]],[[[],[0,5],9,[0,5]],[3,10,[7],[2,7,2,7,10]]]]
[[5,5],[[[5],[6,3,4,4,7],6,8,[0]],[[9],[7,3,3,3],[5,8,0,0,3],[9,1,10],8],3,0,6],[[[5,10],6,7,[2,6,0,5]]]]
[[4,3],[[4],0,[[10],[7,2,2,6],6,[2],[6,3,2]],9],[[[9],4,2,8,[4]]]]
[[6,[[0,6,10,4,9],[0],10,[]]],[[[]],9,[1,4,[6],[9,10]],8,10]]
[[8,4,3,10],[],[3,8,0],[8,8,0],[]]
[[2,0],[[]]]
[[2,9,[[3,1,6,9,0],[8,1,1],1,4,2]]]
[[],[2,10],[3,[[6,0,7,9],1,3],[[3],[3,4,8,7,5],3,1,8],4]]
[[6,2]]
[[[1],[],[]]]
[[[[9],4]],[3,10],[[4,[1],[9]],[[]],6]]
[[10,9,[]],[[9],9,[[0,3,8],10,7,[3],[5,2,7]],8,4],[[],7,[2],[8],4]]
[[],[[[5,0,3,2],[9,10,5],[0,6,9,1,3]],[9,5],[[2,3,5,10],4]],[0,0],[]]
[[[[3,10,8,8,6],[0,5,4,7],4],9,3],[4,[[3,8,10,0],[10,0,1],7,10,5],7],[[2,[0,0],9],9],[4,10,[[6]],[[10,3,9,3],[5,10,10],[1,3,0,2,6],[0,1,4],6]],[]]
[[[1,1]],[[[5,4,8]],6,[[0]],7]]
[[[5,[6,10,10,2]]],[1,[10,[],7,[4,3]],3],[5]]
[[[[7,9],1],[0,[9,8,7,8],0],8,9]]
[[[9],[[2,5],[],4,[]],[],[0,5,1,4]],[6,[[9,1,5,1,3],0]],[[[3,5],1,[9,1],2],[],4],[9],[2,[[10,3,1,10],4,6,7],1,0,[[],10,[10]]]]
[[[],2],[[],[3,[2,6,8,9,0],[0,9,7,1,8],[8,8]]]]
[[7]]
[[1,[[8,3],2,2,4],1,[]],[3,[[6]]]]
[[[[]]],[3,[],[9,[10,0,5,5],4,[]],[1],[[],[10,9,1],7,[]]]]
[[[[2]],[[],[],[]],[[],2,2],5,5],[[9,[],[10,5,7,4,7],[4]],4],[[[],[9,5],0,1,[9,10,2]],9,8,[],5],[[[],[4,7]],[0,1,7],[7,[9],3]],[4,[[1,9,5,8,9],[1,8],[5,4,0,8,5],[],[8,2,0,4]]]]
[[[],0,[[6,1,1],[3,10,7,1,3],[6,2,0,8]]]]
[[[6,[],[9,10,8,8,6]],2,[1,2],[5,[9,2,9,5],5,10]],[8,[[1,6,4],[2,7,3,10],[0,5,10]],[[2,4,1,1],[0],4]],[[]],[9,6,6,[],4],[[[10,5,2,0,6],[]],0]]
[[[8,[5,8],[],[],[10,4]],[[4,4,6],[],1,[8,10,3,3,5],0],[[],[],[2,9,1]],5],[],[[[],2,[10,9,2,10],10],2,[[2,3,2]],[[4,6,7,3,0],[7,8,3,6,7]],[5,[5]]]]
[[7,[10,1,[7,3,4,10,4],[],0]],[[0,0],3,[[1,5,2,1],[],[7,2,7,3],[8],5]],[[[8,5,1,2,2],[2,8]],3,[9,[9,6,3,2,0],[10]],7],[[7,[8,9,4,10],1]]]
[[[[4,5,9,2,8],[],[4,4,6,7],4]],[9,[6,2],[[3,1],9,[]],[5,[1,7,6,0,2],7],0],[[[2]],4,[[9,2,5],[1,1,0,8],[5,7],[5,3,4,7]]],[],[[4,[0,4,0,1],[1]],[],4,0,[]]]
[[[[],1,2],0],[4],[7,[9,[0,3,0]],[10,[6,3]],[[0]]],[7],[3,9]]
[[5,[[0,5,1,4]],9],[1,4,10],[],[[9,[10,10,2,1,0],2,5],[[0,4,2,6],10,10,8,[]],[9,10,[6,9],[],[2,5,4,3]],[[7,6,4,1,3]],[[8],[3,3,0]]]]
[[[1,[8,7,1,1]],[[1,7],[],[3,5,4,2],6],10,4,10],[[],[[],[0,10],3],[],0]]
[[],[[3,7],[0],0,3,[]],[8,[9,[],[1,10,1,7,7],[8,0]],1,[[6,2,3,7,10]],9],[6,7,5,[[7,7,0],4,[5,8,1],[6,5]]]]
[[[5,[3,8,9]],[[],[3,7,7],[3],10],[],[[4,9],[4,10]]],[9,4,3],[[3],10,8,[],4],[7,1,7]]
[[[1],[],2,5]]
[[[0,9],[7,9]],[0,9,[[9,10,3],[],[]],0],[[1],8,4],[9,[8,[5,8],10,8],[2,1,8,9]]]
[[7,[[3,6],3,[10,8,10]],[[6,6,2],[3,8,0],[7,9,7],7],[],4],[10,[1,[5,8,3]],[6,[2,7,10],[],[10,8]],6],[8,3,7,1,[[4,8],4,[6,0,7],[]]]]
[[3,[0,2]],[],[[1,[2,2,1,6],[]],[[9,3,3,3]]],[[6,[0,7,1],[8,7,4],[],10]],[9,[10,[10,3,2],[2],8,1],1,6]]
[[[5,5,10,4,3],[2,[],[7,9,2,3,9],2,[0,10,7]]],[],[[[0,4,8],9,10,0],[2,[2,6,4,8,10],5],10,[],6]]
[[[],[[5],10,10,5],0],[[[1],3,[3],[1]]],[]]
[[5,10,[1,10,6,10],0],[[[7,9,5,3,8],[7,0],3],3,10,7],[5],[[[9,0],0],2],[[7,[2,3],[3],[10,10,6,6]],9,[[2,0]]]]
[[2,[7],[10,[4,0],[4,3,6],6,10],[[9,8,9],9,[6,2,0]]]]
[[4,[[9,2,8,9]],1,10],[[[5,8,4],[8,10],8,9],[5,2,[9,0]],[[10,5,0,10]],4,6],[[2],[2,[9],1],5],[[3,[8,0,2,4],8,6],6,4,[[],7,[4,10,8,9,9],2,[3,9,6]]],[[2,[2,1]],[[5],[4,6,4,10],6],[7,[8,4],[1,7,7,7],[3]],3]]
[[[[],[],10,[3,2,3,4],4]],[[],[[],[],5,[10,4,5,10,1],3],2,10,[[0,7,8,10]]],[3,[7,[]],[5,[4,8,6],2,[1,4,7],6],[]],[[6,8],[],[],1],[10,[0,3],[[0],[7,8,3,9,9]]]]
[[10,[[1,2,5],[2]],[]]]
[[[9,[],4,5,[5,0,10]],9,3],[7,[0,2,1],[[4,7,6,0],[5,1,6]],[[],4,4,[10,1,10,3,1]],9],[0,[2,5,[6],0]],[[1,[]]],[[7]]]
[[],[[[],8,10,7]],[4,[8],1],[1,[[7,2],6,[6,0,4,1]],[[2,1],[10,2,10,8,3],2,[9,4],2],5],[]]
[[[[7,6,7],[10,0]],[[3,5,5,6,1],3],[1],1,3],[2,[10,6],1,8],[],[[[3],[0,1,8],[0,8,4,10,4],9,3],[[3],8],3,[5,[5,2,1],[]]]]
[[3,2,2,10]]
[[10,[10,3,[7,2,0],[]]],[[7,7,9,0,8],[[8,6],7],[1,6,4]]]
[[[10,[10,9,1,1,3]],1],[1,5,7,8,[9]],[2,2,9,4]]
[[],[],[5],[[1,9],[[0,0,8,5],1,[2,3,10,0],[6,9]]],[]]
[[[],1,[7,9,[],4]]]
[[[1,0,[9],[2,8,6,7],6]],[9,[10],3],[[8,3,7],[],[2,8],2],[]]
[[1,[6,[6,1],[3,1],8,[2,6,9,8,4]],7,0,6],[0,[1,[3,10,2],6,7],[[8,10],1,[0,9,3,6],6,7],9,9],[[[9,1,9,2,8],4,[],[3,8,4]],8,[9,[6,2,9,5,9],8],3],[2,6,[1,8,[]]],[10]]
[[0,[10],6,10],[],[4,[[10,5,0],[]]],[8,[[4,1,4],[],4]],[4,10,[]]]
[[[[4,9],[7],[4,8],3,[6,10,8,1]],3]]
[[[],[[6,5,8,9],1,7,[9,2,9,5,8],10],[[6,8,10,8],7,4,[2,1,0,6,6]]],[10],[[],[],0,[10,8,[5,3,4,5,0],[9,9]],[6,0,[4,8],[]]],[[[8],[4],[1,8,2],[5,6,4,6],[]],4]]
[[],[],[10,[10]],[[[4,7,9,2],2,[10,4,7,3,6],[10,4,1],[9,0,10]],8,[[2,3,1,9],10,[9,2,9],[]]],[5,7,4,[[0],6,[9,0],[1,7,5,7,2]],1]]
[[[[0],[0,6,4],6],[2,4]],[[0,[0]],[[],[10,3,9,2,2]],[[8,6,8,3,3],4],7,8]]
[[[5],[],[9,2,0,[9,3]]],[3,7,[4,3,[5,5]],4,8],[[1,[]]]]
[[[2,4]],[0,[5,8,1,[7,10]],[[1,10,2,0,0],7],[9,4,[8],[0,10,1,8,9],7]]]
[[4,[[5,3,2,0],7,4,10],8,3,[[7,10],[5],[1,10,9,7],[3,4,1,6,5]]],[[2,6],[8,3,0,2,9]]]
[[[10,[4,10,8,6],[3,4],[3,1,3,3,2],[3,10,0,4]],7],[5,[],[[],[7,3],6],10],[],[[2,[6,3],6],[9,9,[0,8,9,5,6],[]]],[[7,[4,1,0,0,6]],7,[]]]
[[[],[[8,6,1,6],[10]],[8,3,[2,1,2,6],[8,1,10,8],0]],[[0,[7,4]],5,7,[[10]]],[[[],8],[],8],[[6,[0,1],9,1,0],[],3,5,9]]
[[],[1],[7],[4,0,4,[]]]
[[[7,3,6]],[8,[[],4,8,[6]],[1,4,[]],0,9],[]]
[[3,0,2,[]],[3,[],5,[]],[[[4,1,9,4],[5,10,3],9,[9,1]],[[10],7,[3]],[[],[2,5,0,10],8,5],[],4]]
[[9,[9,[0,2]],10,[[0,7,9,4,2],2,[6,7,4,3],[7]],4],[],[[],10,4,5]]
[[[[9],[7],2,1,8],[[7,5,9],10],[],[]]]
[[1,3,[[7],3,[6,10],[7,2,10,6],6],5],[],[[],[[],2],1,[10,[],8,3,[9,7,9,8]]],[]]
[[[10,[10,7,9],[],[8,9]],7],[2,10,[0,9,[4,2,10,7]],6,9],[[1,2,3],0],[5,3,[2],2]]

@ -0,0 +1,73 @@
use serde_json::{json, Value};
use std::cmp::Ordering;
fn main() {
let contents = std::fs::read_to_string("data.txt").expect("Failed to read file");
// Part 1
let sum = contents
.trim()
.split("\n\n")
.map(|pair| {
pair.split("\n")
.map(|str| serde_json::from_str(str).unwrap())
.collect::<Vec<Value>>()
})
.enumerate()
.map(|(i, p)| (i + 1, in_order(&p[0], &p[1])))
.fold(0, |acc, (i, good)| {
acc + if good.unwrap_or(false) { i } else { 0 }
});
println!("Part 1. Sum: {:?}", sum);
// Part 2
let two = json!([[2]]);
let six = json!([[6]]);
let mut packets = contents
.split("\n")
.filter(|&l| !l.is_empty())
.map(|line| serde_json::from_str(line).unwrap())
.collect::<Vec<Value>>();
packets.append(&mut vec![two.clone(), six.clone()]);
packets.sort_by(cmp);
let idx1 = packets.iter().position(|x| x == &two).unwrap();
let idx2 = packets.iter().position(|x| x == &six).unwrap();
println!("Part 2. Decoder Key: {:?}", (idx1 + 1) * (idx2 + 1));
}
fn in_order(left: &Value, right: &Value) -> Option<bool> {
match left {
Value::Number(l) => match right {
Value::Number(r) => match l.as_u64().cmp(&r.as_u64()) {
Ordering::Less => Some(true),
Ordering::Greater => Some(false),
Ordering::Equal => None,
},
Value::Array(_) => in_order(&json!([left]), &right),
_ => panic!("Bad input"),
},
Value::Array(l) => match right {
Value::Number(_) => in_order(&left, &json!([right])),
Value::Array(r) => match (l.len(), r.len()) {
(0, 0) => None,
(0, _) => Some(true),
(_, 0) => Some(false),
(_, _) => match in_order(&l[0], &r[0]) {
None => in_order(&json!(l[1..]), &json!(r[1..])),
a => a,
},
},
_ => panic!("Bad input"),
},
_ => panic!("Bad input"),
}
}
fn cmp(l: &Value, r: &Value) -> Ordering {
match in_order(l, r) {
Some(true) => Ordering::Less,
Some(false) => Ordering::Greater,
None => Ordering::Equal,
}
}

@ -0,0 +1,23 @@
[1,1,3,1,1]
[1,1,5,1,1]
[[1],[2,3,4]]
[[1],4]
[9]
[[8,7,6]]
[[4,4],4,4]
[[4,4],4,4,4]
[7,7,7,7]
[7,7,7]
[]
[3]
[[[]]]
[[]]
[1,[2,[3,[4,[5,6,7]]]],8,9]
[1,[2,[3,[4,[5,6,0]]]],8,9]
Loading…
Cancel
Save