This commit is contained in:
Robin Appelman 2026-07-11 21:13:20 +02:00
commit 97ee910d85
36 changed files with 716 additions and 762 deletions

386
Cargo.lock generated
View file

@ -1,36 +1,36 @@
# This file is automatically @generated by Cargo. # This file is automatically @generated by Cargo.
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3 version = 4
[[package]] [[package]]
name = "addr2line" name = "addr2line"
version = "0.24.2" version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
dependencies = [ dependencies = [
"gimli", "gimli",
] ]
[[package]] [[package]]
name = "adler2" name = "adler2"
version = "2.0.0" version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "1.1.3" version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
[[package]] [[package]]
name = "backtrace" name = "backtrace"
version = "0.3.74" version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
dependencies = [ dependencies = [
"addr2line", "addr2line",
"cfg-if", "cfg-if",
@ -38,7 +38,7 @@ dependencies = [
"miniz_oxide", "miniz_oxide",
"object", "object",
"rustc-demangle", "rustc-demangle",
"windows-targets", "windows-link",
] ]
[[package]] [[package]]
@ -50,45 +50,26 @@ dependencies = [
"backtrace", "backtrace",
] ]
[[package]]
name = "base64"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "beef"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
[[package]]
name = "bitflags"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "1.0.0" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]] [[package]]
name = "console" name = "console"
version = "0.15.10" version = "0.16.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c"
dependencies = [ dependencies = [
"encode_unicode", "encode_unicode",
"libc", "libc",
"once_cell",
"windows-sys", "windows-sys",
] ]
@ -100,14 +81,20 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]] [[package]]
name = "errno" name = "errno"
version = "0.3.10" version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys", "windows-sys",
] ]
[[package]]
name = "fastrand"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
[[package]] [[package]]
name = "fnv" name = "fnv"
version = "1.0.7" version = "1.0.7"
@ -115,24 +102,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]] [[package]]
name = "gimli" name = "getrandom"
version = "0.31.1" version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
dependencies = [
"cfg-if",
"libc",
"r-efi",
]
[[package]]
name = "gimli"
version = "0.32.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
[[package]] [[package]]
name = "insta" name = "insta"
version = "1.42.1" version = "1.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71c1b125e30d93896b365e156c33dadfffab45ee8400afcbba4752f59de08a86" checksum = "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82"
dependencies = [ dependencies = [
"console", "console",
"linked-hash-map",
"once_cell", "once_cell",
"pin-project",
"ron",
"serde", "serde",
"similar", "similar",
"tempfile",
] ]
[[package]] [[package]]
@ -141,59 +137,46 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
[[package]]
name = "lazy_static"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.170" version = "0.2.186"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "linked-hash-map"
version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.4.15" version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
[[package]] [[package]]
name = "logos" name = "logos"
version = "0.14.4" version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7251356ef8cb7aec833ddf598c6cb24d17b689d20b993f9d11a3d764e34e6458" checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f"
dependencies = [ dependencies = [
"logos-derive", "logos-derive",
] ]
[[package]] [[package]]
name = "logos-codegen" name = "logos-codegen"
version = "0.14.4" version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f80069600c0d66734f5ff52cc42f2dabd6b29d205f333d61fd7832e9e9963f" checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970"
dependencies = [ dependencies = [
"beef",
"fnv", "fnv",
"lazy_static",
"proc-macro2", "proc-macro2",
"quote", "quote",
"regex-automata",
"regex-syntax", "regex-syntax",
"syn", "syn",
] ]
[[package]] [[package]]
name = "logos-derive" name = "logos-derive"
version = "0.14.4" version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24fb722b06a9dc12adb0963ed585f19fc61dc5413e6a9be9422ef92c091e731d" checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31"
dependencies = [ dependencies = [
"logos-codegen", "logos-codegen",
] ]
@ -206,15 +189,15 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.7.4" version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]] [[package]]
name = "miette" name = "miette"
version = "7.5.0" version = "7.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"backtrace-ext", "backtrace-ext",
@ -226,15 +209,14 @@ dependencies = [
"supports-unicode", "supports-unicode",
"terminal_size", "terminal_size",
"textwrap", "textwrap",
"thiserror 1.0.69", "unicode-width 0.1.14",
"unicode-width",
] ]
[[package]] [[package]]
name = "miette-derive" name = "miette-derive"
version = "7.5.0" version = "7.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -243,39 +225,39 @@ dependencies = [
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.5" version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [ dependencies = [
"adler2", "adler2",
] ]
[[package]] [[package]]
name = "object" name = "object"
version = "0.36.7" version = "0.37.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.20.3" version = "1.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
[[package]] [[package]]
name = "owo-colors" name = "owo-colors"
version = "4.2.0" version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d"
[[package]] [[package]]
name = "parse-display" name = "parse-display"
version = "0.9.1" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" checksum = "e78deb158fb1d73b29efb4b7e9b9860b78059c670de06bd28df8d0b458ded0eb"
dependencies = [ dependencies = [
"parse-display-derive", "parse-display-derive",
"regex", "regex",
@ -284,9 +266,9 @@ dependencies = [
[[package]] [[package]]
name = "parse-display-derive" name = "parse-display-derive"
version = "0.9.1" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" checksum = "8e95a50d1084dab562913062c4c34bb204b68fc6ec38a1395909ff5aaaf4f10a"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -296,49 +278,35 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "pin-project"
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.93" version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.38" version = "1.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
[[package]] [[package]]
name = "regex" name = "r-efi"
version = "1.11.1" version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
[[package]]
name = "regex"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a0e75113e14dc5acb068cd0786884f214f1312650a3d36d269f5c4f3cdee8a2"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -348,9 +316,9 @@ dependencies = [
[[package]] [[package]]
name = "regex-automata" name = "regex-automata"
version = "0.4.9" version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" checksum = "1f388202e4b80542a0921078cc23b6333bcf1409c1e3f86404cae4766a6131db"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
@ -359,34 +327,23 @@ dependencies = [
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.8.5" version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]]
name = "ron"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
dependencies = [
"base64",
"bitflags 1.3.2",
"serde",
]
[[package]] [[package]]
name = "rustc-demangle" name = "rustc-demangle"
version = "0.1.24" version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "0.38.44" version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
@ -472,9 +429,9 @@ dependencies = [
[[package]] [[package]]
name = "supports-hyperlinks" name = "supports-hyperlinks"
version = "3.1.0" version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" checksum = "e396b6523b11ccb83120b115a0b7366de372751aa6edf19844dfb13a6af97e91"
[[package]] [[package]]
name = "supports-unicode" name = "supports-unicode"
@ -484,9 +441,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.98" version = "2.0.118"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -494,10 +451,23 @@ dependencies = [
] ]
[[package]] [[package]]
name = "terminal_size" name = "tempfile"
version = "0.4.1" version = "3.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom",
"once_cell",
"rustix",
"windows-sys",
]
[[package]]
name = "terminal_size"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874"
dependencies = [ dependencies = [
"rustix", "rustix",
"windows-sys", "windows-sys",
@ -538,48 +508,28 @@ dependencies = [
[[package]] [[package]]
name = "textwrap" name = "textwrap"
version = "0.16.1" version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
dependencies = [ dependencies = [
"unicode-linebreak", "unicode-linebreak",
"unicode-width", "unicode-width 0.2.2",
] ]
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.69" version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
dependencies = [ dependencies = [
"thiserror-impl 1.0.69", "thiserror-impl",
]
[[package]]
name = "thiserror"
version = "2.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"
dependencies = [
"thiserror-impl 2.0.11",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.69" version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "thiserror-impl"
version = "2.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -588,9 +538,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.17" version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]] [[package]]
name = "unicode-linebreak" name = "unicode-linebreak"
@ -604,9 +554,15 @@ version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unicode-width"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
[[package]] [[package]]
name = "vdf-reader" name = "vdf-reader"
version = "0.3.3" version = "0.3.4"
dependencies = [ dependencies = [
"insta", "insta",
"logos", "logos",
@ -616,7 +572,7 @@ dependencies = [
"serde", "serde",
"serde_core", "serde_core",
"test-case", "test-case",
"thiserror 2.0.11", "thiserror",
"walkdir", "walkdir",
] ]
@ -632,82 +588,24 @@ dependencies = [
[[package]] [[package]]
name = "winapi-util" name = "winapi-util"
version = "0.1.9" version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys", "windows-sys",
] ]
[[package]]
name = "windows-link"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]] [[package]]
name = "windows-sys" name = "windows-sys"
version = "0.59.0" version = "0.61.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
dependencies = [ dependencies = [
"windows-targets", "windows-link",
] ]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

View file

@ -1,23 +1,23 @@
[package] [package]
name = "vdf-reader" name = "vdf-reader"
version = "0.3.3" version = "0.3.4"
edition = "2021" edition = "2024"
description = "Rust parser for valve vdf files." description = "Rust parser for valve vdf files."
license = "MIT" license = "MIT"
repository = "https://codeberg.org/icewind/vdf-reader" repository = "https://codeberg.org/icewind/vdf-reader"
rust-version = "1.70.0" rust-version = "1.86.0"
[dependencies] [dependencies]
logos = "0.14.0" logos = "0.16.1"
thiserror = "2.0.11" thiserror = "2.0.11"
miette = "7.5.0" miette = "7.5.0"
parse-display = "0.9.0" parse-display = "0.11.0"
serde_core = "1.0.228" serde_core = "1.0.228"
[dev-dependencies] [dev-dependencies]
test-case = "3.3.1" test-case = "3.3.1"
insta = { version = "1.38.0", features = ["ron"] } insta = { version = "1.38.0", features = ["json"] }
miette = { version = "7.2.0", features = ["fancy"] } miette = { version = "7.2.0", features = ["fancy"] }
walkdir = "2.5.0" walkdir = "2.5.0"
maplit = "1.0.2" maplit = "1.0.2"
serde = { version = "1.0.228", features = ["derive"] } serde = { version = "1.0.228", features = ["derive"] }

34
flake.lock generated
View file

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1763938834, "lastModified": 1780099841,
"narHash": "sha256-j8iB0Yr4zAvQLueCZ5abxfk6fnG/SJ5JnGUziETjwfg=", "narHash": "sha256-EVZd2RsbpreRUDSi9rBwPY+ZxoyMaiEBbZxxhljbaS4=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "d9e753122e51cee64eb8d2dddfe11148f339f5a2", "rev": "0532eb17955225173906d671fb36306bdeb1e2dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -22,11 +22,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767012911, "lastModified": 1783352529,
"narHash": "sha256-+olVAh2dL9mg7C94bMYFpfzqaplHVigtUSpszS86xDM=", "narHash": "sha256-FZDPaZdAAjFbJWR/BoWCCVYB16WV0b472vhUPlQawh0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "flakelight", "repo": "flakelight",
"rev": "1eb3dee6b0dfbae9d0cb0c139a816ea62c5aa7ca", "rev": "da36ab2f725feb14b287ff1d6d56f6fc8ce6be5a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -44,11 +44,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1764619631, "lastModified": 1780231986,
"narHash": "sha256-WojMP5S9qLmOLecEQ+7+yc33Ly1ydoRsODNG6hlLqiQ=", "narHash": "sha256-OyafczPtzE0Xa2zl3j/KvV2+ZVYGhYQHt0MOVWtDXlY=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "0fae557bf52d8493840aca52d433c473ecc305ef", "rev": "f5cbda29b945df03256bf63c22fa4cd5fa429e67",
"revCount": 67, "revCount": 72,
"type": "git", "type": "git",
"url": "https://codeberg.org/icewind/mill-scale" "url": "https://codeberg.org/icewind/mill-scale"
}, },
@ -59,16 +59,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1767325753, "lastModified": 1783703440,
"narHash": "sha256-yA/CuWyqm+AQo2ivGy6PlYrjZBQm7jfbe461+4HF2fo=", "narHash": "sha256-O3/YajjWo001VUIgD8BwaRdSNLUFe7nZ1qV5TwhRBcw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "64049ca74d63e971b627b5f3178d95642e61cedd", "rev": "8f0500b9660505dc3cb647775fe9a978a74b5283",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-25.11", "ref": "nixos-26.05",
"type": "indirect" "type": "indirect"
} }
}, },
@ -88,11 +88,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764557621, "lastModified": 1780197589,
"narHash": "sha256-kX5PoY8hQZ80+amMQgOO9t8Tc1JZ70gYRnzaVD4AA+o=", "narHash": "sha256-FVCr2Ij/jKf59a4LW481eeOF6rJRreOBrVgW/aUBTrw=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "93316876c2229460a5d6f5f052766cc4cef538ce", "rev": "21632e942d89bf1cce4e5a63d7e58a215a0cbfcc",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,6 +1,6 @@
{ {
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-25.11"; nixpkgs.url = "nixpkgs/nixos-26.05";
flakelight = { flakelight = {
url = "github:nix-community/flakelight"; url = "github:nix-community/flakelight";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -48,7 +48,7 @@ fn insert<K: Into<String>, V: Into<Entry>>(map: &mut HashMap<String, Entry>, key
entry.insert(value); entry.insert(value);
} }
hash_map::Entry::Occupied(mut entry) => match entry.get_mut() { hash_map::Entry::Occupied(mut entry) => match entry.get_mut() {
Entry::Array(ref mut array) => { Entry::Array(array) => {
array.push(value); array.push(value);
} }
_ => { _ => {

View file

@ -5,7 +5,7 @@ use std::str;
/// Parser token. /// Parser token.
#[derive(PartialEq, Debug, Logos, Display, Clone)] #[derive(PartialEq, Debug, Logos, Display, Clone)]
#[logos(skip r"[ \t\f\r\n]+")] // whitespace #[logos(skip r"[ \t\f\r\n]+")] // whitespace
#[logos(skip r"//[^\n]*")] // comments #[logos(skip(r"//[^\n]*", allow_greedy = true))] // comments
pub enum Token { pub enum Token {
/// A group is starting. /// A group is starting.
#[token("{")] #[token("{")]

View file

@ -44,13 +44,11 @@ impl<'de> Deserializer<'de> {
.take() .take()
.or_else(|| self.tokenizer.next()) .or_else(|| self.tokenizer.next())
.map(|r| { .map(|r| {
r.map(|t| { r.inspect(|t| {
self.last_span = t.span.clone(); self.last_span = t.span.clone();
t
}) })
.map_err(|span| { .inspect_err(|span| {
self.last_span = span.clone(); self.last_span = span.clone();
span
}) })
}) })
} }
@ -306,7 +304,7 @@ impl<'de> de::Deserializer<'de> for &'_ mut Deserializer<'de> {
Some(Err(span)) => { Some(Err(span)) => {
return Err( return Err(
NoValidTokenError::new(VALUE_TOKEN, span.into(), self.source().into()).into(), NoValidTokenError::new(VALUE_TOKEN, span.into(), self.source().into()).into(),
) );
} }
Some(Ok(token)) => token, Some(Ok(token)) => token,
}; };
@ -516,7 +514,7 @@ impl<'source, 'a> TableWalker<'source, 'a> {
(None, false) => { (None, false) => {
return Err(None::<SpannedToken> return Err(None::<SpannedToken>
.expect_token(expected, self.source()) .expect_token(expected, self.source())
.unwrap_err()) .unwrap_err());
} }
}; };

View file

@ -13,5 +13,8 @@ fn test_parse(path: &str) {
let parsed = Table::load(&mut reader) let parsed = Table::load(&mut reader)
.map_err(miette::Error::from) .map_err(miette::Error::from)
.expect("failed to parse test data"); .expect("failed to parse test data");
insta::assert_ron_snapshot!(path, parsed);
insta::with_settings!({sort_maps => true}, {
insta::assert_json_snapshot!(format!("parse__{}", path), parsed);
});
} }

View file

@ -216,16 +216,18 @@ struct GameList {
#[test_case("tests/data/maparray.vdf")] #[test_case("tests/data/maparray.vdf")]
#[test_case("tests/errors/invalidmaparraykeys.vdf")] #[test_case("tests/errors/invalidmaparraykeys.vdf")]
fn test_serde(path: &str) { fn test_serde(path: &str) {
let raw = read_to_string(path).unwrap(); insta::with_settings!({sort_maps => true}, {
match from_str::<Expected>(&raw) { let raw = read_to_string(path).unwrap();
Ok(result) => insta::assert_ron_snapshot!(path, result), match from_str::<Expected>(&raw) {
Err(e) => { Ok(result) => insta::assert_json_snapshot!(path, result),
let handler = GraphicalReportHandler::new_themed(GraphicalTheme::unicode_nocolor()); Err(e) => {
let mut out = String::new(); let handler = GraphicalReportHandler::new_themed(GraphicalTheme::unicode_nocolor());
handler.render_report(&mut out, &e).unwrap(); let mut out = String::new();
insta::assert_snapshot!(path, out) handler.render_report(&mut out, &e).unwrap();
insta::assert_snapshot!(format!("serde__{}", path), out)
}
} }
} });
} }
#[test_case("tests/data/toplevel.vdf")] #[test_case("tests/data/toplevel.vdf")]
@ -234,18 +236,20 @@ fn test_serde(path: &str) {
#[test_case("tests/data/serde_array_type.vdf")] #[test_case("tests/data/serde_array_type.vdf")]
#[test_case("tests/data/maparray.vdf")] #[test_case("tests/data/maparray.vdf")]
fn test_serde_table(path: &str) { fn test_serde_table(path: &str) {
let raw = read_to_string(path).unwrap(); insta::with_settings!({sort_maps => true}, {
match from_str::<Table>(&raw) { let raw = read_to_string(path).unwrap();
Ok(result) => { match from_str::<Table>(&raw) {
insta::assert_ron_snapshot!(format!("table__{}", path), result); Ok(result) => {
insta::assert_json_snapshot!(format!("table__{}", path), result);
}
Err(e) => {
let handler = GraphicalReportHandler::new_themed(GraphicalTheme::unicode_nocolor());
let mut out = String::new();
handler.render_report(&mut out, &e).unwrap();
insta::assert_snapshot!(format!("table__{}", path), out)
}
} }
Err(e) => { });
let handler = GraphicalReportHandler::new_themed(GraphicalTheme::unicode_nocolor());
let mut out = String::new();
handler.render_report(&mut out, &e).unwrap();
insta::assert_snapshot!(format!("table__{}", path), out)
}
}
} }
#[test_case("tests/data/concrete.vmt")] #[test_case("tests/data/concrete.vmt")]
@ -258,5 +262,8 @@ fn test_serde_from_table(path: &str) {
let result = Table::load_from_str(&raw).unwrap(); let result = Table::load_from_str(&raw).unwrap();
let material: Expected = from_entry(result.into()).expect("table to material"); let material: Expected = from_entry(result.into()).expect("table to material");
insta::assert_ron_snapshot!(format!("table_to_material__{}", path), material);
insta::with_settings!({sort_maps => true}, {
insta::assert_json_snapshot!(format!("table_to_material__{}", path), material);
});
} }

View file

@ -12,8 +12,8 @@ expression: parsed
"0_collapsed": "0", "0_collapsed": "0",
"1_collapsed": "0", "1_collapsed": "0",
"2_collapsed": "0", "2_collapsed": "0",
"3_collapsed": "0", "3_collapsed": "0"
}, }
}, },
"FriendsFriendsPage": { "FriendsFriendsPage": {
"BuddyList": { "BuddyList": {
@ -23,15 +23,15 @@ expression: parsed
"3_collapsed": "0", "3_collapsed": "0",
"4_collapsed": "0", "4_collapsed": "0",
"5_collapsed": "0", "5_collapsed": "0",
"allfriends_collapsed": "0", "allfriends_collapsed": "0"
}, }
}, }
}, },
"FriendsState": {}, "FriendsState": {},
"tall": "440", "tall": "440",
"wide": "252", "wide": "252",
"xpos": "1028", "xpos": "1028",
"ypos": "280", "ypos": "280"
}, },
"Servers": { "Servers": {
"DialogServerBrowser.res": { "DialogServerBrowser.res": {
@ -50,8 +50,8 @@ expression: parsed
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"FriendsGames": { "FriendsGames": {
"gamelist": { "gamelist": {
@ -67,8 +67,8 @@ expression: parsed
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"HistoryGames": { "HistoryGames": {
"gamelist": { "gamelist": {
@ -85,8 +85,8 @@ expression: parsed
"sort_column": "#ServerBrowser_LastPlayed", "sort_column": "#ServerBrowser_LastPlayed",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "#ServerBrowser_Latency", "sort_column_secondary": "#ServerBrowser_Latency",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"InternetGames": { "InternetGames": {
"gamelist": { "gamelist": {
@ -102,8 +102,8 @@ expression: parsed
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"LanGames": { "LanGames": {
"gamelist": { "gamelist": {
@ -119,8 +119,8 @@ expression: parsed
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"SpectateGames": { "SpectateGames": {
"gamelist": { "gamelist": {
@ -136,20 +136,20 @@ expression: parsed
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, }
}, },
"tall": "720", "tall": "720",
"wide": "1280", "wide": "1280",
"xpos": "0", "xpos": "0",
"ypos": "0", "ypos": "0"
}, }
}, },
"Steam": { "Steam": {
"cached": { "cached": {
"OverlaySplash.res": {}, "OverlaySplash.res": {}
}, }
}, }
}, }
} }

View file

@ -11,6 +11,6 @@ expression: parsed
"$detailblendmode": "0", "$detailblendmode": "0",
"$detailscale": "1.9", "$detailscale": "1.9",
"$ssbump": "1", "$ssbump": "1",
"%keywords": "tf", "%keywords": "tf"
}, }
} }

View file

@ -7,18 +7,18 @@ expression: parsed
"$envmaptint": [ "$envmaptint": [
".5", ".5",
".5", ".5",
".5", ".5"
], ],
"\\\\\"$translucent\"": "1", "\\\\\"$translucent\"": "1",
"array": [ "array": [
"1", "1",
"2", "2",
"3", "3"
], ],
"bracket_string": "[{]", "bracket_string": "[{]",
"empty": "", "empty": "",
"empty quoted": "\"\"", "empty quoted": "\"\"",
"ignored_bracket_string": "[{]", "ignored_bracket_string": "[{]",
"windows_path": "C:\\test\\no newline", "windows_path": "C:\\test\\no newline"
}, }
} }

View file

@ -4,5 +4,5 @@ expression: parsed
--- ---
{ {
"bar": "asd", "bar": "asd",
"foo": "1", "foo": "1"
} }

View file

@ -12,4 +12,3 @@ vmt_parser::parse_serde
· ╰── Expected a bool · ╰── Expected a bool
6 │ "%keywords" "tf" 6 │ "%keywords" "tf"
╰──── ╰────

View file

@ -11,4 +11,3 @@ vmt_reader::unexpected_token
· ┬ · ┬
· ╰── Expected item, quoted item, statement, quoted statement, start of group · ╰── Expected item, quoted item, statement, quoted statement, start of group
╰──── ╰────

View file

@ -12,4 +12,3 @@ vmt_parser::parse_serde
· ╰── Expected a u8 · ╰── Expected a u8
3 │ flex_array "[1.0 2.2]" 3 │ flex_array "[1.0 2.2]"
╰──── ╰────

View file

@ -12,8 +12,8 @@ expression: result
"0_collapsed": "0", "0_collapsed": "0",
"1_collapsed": "0", "1_collapsed": "0",
"2_collapsed": "0", "2_collapsed": "0",
"3_collapsed": "0", "3_collapsed": "0"
}, }
}, },
"FriendsFriendsPage": { "FriendsFriendsPage": {
"BuddyList": { "BuddyList": {
@ -23,15 +23,15 @@ expression: result
"3_collapsed": "0", "3_collapsed": "0",
"4_collapsed": "0", "4_collapsed": "0",
"5_collapsed": "0", "5_collapsed": "0",
"allfriends_collapsed": "0", "allfriends_collapsed": "0"
}, }
}, }
}, },
"FriendsState": {}, "FriendsState": {},
"tall": "440", "tall": "440",
"wide": "252", "wide": "252",
"xpos": "1028", "xpos": "1028",
"ypos": "280", "ypos": "280"
}, },
"Servers": { "Servers": {
"DialogServerBrowser.res": { "DialogServerBrowser.res": {
@ -50,8 +50,8 @@ expression: result
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"FriendsGames": { "FriendsGames": {
"gamelist": { "gamelist": {
@ -67,8 +67,8 @@ expression: result
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"HistoryGames": { "HistoryGames": {
"gamelist": { "gamelist": {
@ -85,8 +85,8 @@ expression: result
"sort_column": "#ServerBrowser_LastPlayed", "sort_column": "#ServerBrowser_LastPlayed",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "#ServerBrowser_Latency", "sort_column_secondary": "#ServerBrowser_Latency",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"InternetGames": { "InternetGames": {
"gamelist": { "gamelist": {
@ -102,8 +102,8 @@ expression: result
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"LanGames": { "LanGames": {
"gamelist": { "gamelist": {
@ -119,8 +119,8 @@ expression: result
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, },
"SpectateGames": { "SpectateGames": {
"gamelist": { "gamelist": {
@ -136,20 +136,20 @@ expression: result
"sort_column": "#ServerBrowser_Latency", "sort_column": "#ServerBrowser_Latency",
"sort_column_asc": "1", "sort_column_asc": "1",
"sort_column_secondary": "", "sort_column_secondary": "",
"sort_column_secondary_asc": "1", "sort_column_secondary_asc": "1"
}, }
}, }
}, },
"tall": "720", "tall": "720",
"wide": "1280", "wide": "1280",
"xpos": "0", "xpos": "0",
"ypos": "0", "ypos": "0"
}, }
}, },
"Steam": { "Steam": {
"cached": { "cached": {
"OverlaySplash.res": {}, "OverlaySplash.res": {}
}, }
}, }
}, }
} }

View file

@ -11,6 +11,6 @@ expression: result
"$detailblendmode": "0", "$detailblendmode": "0",
"$detailscale": "1.9", "$detailscale": "1.9",
"$ssbump": "1", "$ssbump": "1",
"%keywords": "tf", "%keywords": "tf"
}, }
} }

View file

@ -6,6 +6,6 @@ expression: result
"MapArray": { "MapArray": {
"0": "foo", "0": "foo",
"1": "bar", "1": "bar",
"2": "asd", "2": "asd"
}, }
} }

View file

@ -8,11 +8,11 @@ expression: result
"fixed_array": [ "fixed_array": [
"1", "1",
"2", "2",
"3", "3"
], ],
"flex_array": [ "flex_array": [
"1", "1",
"2.2", "2.2"
], ],
"foo": "0", "foo": "0",
"single": "1.2", "single": "1.2",
@ -20,11 +20,11 @@ expression: result
"triple": [ "triple": [
"1.2", "1.2",
"1.3", "1.3",
"1.4", "1.4"
], ],
"tuple": [ "tuple": [
"1", "1",
"57", "57"
], ]
}, }
} }

View file

@ -4,5 +4,5 @@ expression: result
--- ---
{ {
"bar": "asd", "bar": "asd",
"foo": "1", "foo": "1"
} }

View file

@ -2,151 +2,153 @@
source: tests/serde.rs source: tests/serde.rs
expression: material expression: material
--- ---
UserConfigData( {
Steam: UserConfigDataSteam( "UserConfigData": {
cached: UserConfigDataSteamCached( "Steam": {
r#OverlaySplash.res: {}, "cached": {
), "OverlaySplash.res": {}
), }
FriendsMainDialog: {
"xpos": 1028,
"ypos": 280,
"wide": 252,
"tall": 440,
"FriendPanelSelf": {},
"FriendsDialogSheet": UserConfigDataFriendsMainDialogFriendsDialogSheet(
FriendsFriendsPage: UserConfigDataFriendsMainDialogFriendsDialogSheetFriendsPage(
BuddyList: {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
"4_collapsed": false,
"5_collapsed": false,
"allfriends_collapsed": false,
},
),
FriendsClansPage: UserConfigDataFriendsMainDialogFriendsDialogSheetFriendsPage(
BuddyList: {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
},
),
),
"FriendsState": {},
},
Servers: UserConfigDataServers(
r#DialogServerBrowser.res: {
"xpos": 0,
"ypos": 0,
"wide": 1280,
"tall": 720,
"GameTabs": UserConfigDataServersDialogGameTabs(
InternetGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: None,
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
FavoriteGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: None,
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
HistoryGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_LastPlayed",
sort_column_secondary: Some("#ServerBrowser_Latency"),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
SpectateGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: None,
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
LanGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: None,
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
FriendsGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: None,
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
),
}, },
), "FriendsMainDialog": {
) "FriendPanelSelf": {},
"FriendsDialogSheet": {
"FriendsFriendsPage": {
"BuddyList": {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
"4_collapsed": false,
"5_collapsed": false,
"allfriends_collapsed": false
}
},
"FriendsClansPage": {
"BuddyList": {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false
}
}
},
"FriendsState": {},
"tall": 440,
"wide": 252,
"xpos": 1028,
"ypos": 280
},
"Servers": {
"DialogServerBrowser.res": {
"GameTabs": {
"InternetGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": null,
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"FavoriteGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": null,
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"HistoryGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_LastPlayed",
"sort_column_secondary": "#ServerBrowser_Latency",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"SpectateGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": null,
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"LanGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": null,
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"FriendsGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": null,
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
}
},
"tall": 720,
"wide": 1280,
"xpos": 0,
"ypos": 0
}
}
}
}

View file

@ -2,13 +2,15 @@
source: tests/serde.rs source: tests/serde.rs
expression: material expression: material
--- ---
LightmappedGeneric( {
r#$baseTexture: "cp_mountainlab/concrete/concretefloor003", "LightmappedGeneric": {
r#$bumpmap: "concrete/concretefloor007b_height-ssbump", "$baseTexture": "cp_mountainlab/concrete/concretefloor003",
r#$ssbump: true, "$bumpmap": "concrete/concretefloor007b_height-ssbump",
r#%keywords: "tf", "$ssbump": true,
r#$detail: "overlays/detail001", "%keywords": "tf",
r#$detailscale: 1.9, "$detail": "overlays/detail001",
r#$detailblendmode: 0, "$detailscale": 1.9,
r#$detailblendfactor: 1.0, "$detailblendmode": 0,
) "$detailblendfactor": 1.0
}
}

View file

@ -2,8 +2,10 @@
source: tests/serde.rs source: tests/serde.rs
expression: material expression: material
--- ---
MapArray([ {
"foo", "MapArray": [
"bar", "foo",
"asd", "bar",
]) "asd"
]
}

View file

@ -2,15 +2,21 @@
source: tests/serde.rs source: tests/serde.rs
expression: material expression: material
--- ---
r#Resource/specificPanel.res( {
empty: (), "Resource/specificPanel.res": {
array: [ "empty": null,
1, "array": [
2, 1,
3, 2,
], 3
windows_path: "C:\\test\\no newline", ],
bracket_string: "[{]", "windows_path": "C:\\test\\no newline",
r#\\"$translucent": true, "bracket_string": "[{]",
r#$envmaptint: (0.5, 0.5, 0.5), "\\\\\"$translucent\"": true,
) "$envmaptint": [
0.5,
0.5,
0.5
]
}
}

View file

@ -2,15 +2,32 @@
source: tests/serde.rs source: tests/serde.rs
expression: material expression: material
--- ---
Types( {
fixed_array: (1, 2, 3), "Types": {
flex_array: [ "fixed_array": [
1.0, 1,
2.2, 2,
], 3
tuple: (true, 57), ],
single: 1.2, "flex_array": [
triple: (1.2, 1.3, 1.4), 1.0,
single_int: 2.0, 2.2
another_tuple: (8, "foo", false), ],
) "tuple": [
true,
57
],
"single": 1.2,
"triple": [
1.2,
1.3,
1.4
],
"single_int": 2.0,
"another_tuple": [
8,
"foo",
false
]
}
}

View file

@ -2,151 +2,153 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
UserConfigData( {
Steam: UserConfigDataSteam( "UserConfigData": {
cached: UserConfigDataSteamCached( "Steam": {
r#OverlaySplash.res: {}, "cached": {
), "OverlaySplash.res": {}
), }
FriendsMainDialog: {
"xpos": 1028,
"ypos": 280,
"wide": 252,
"tall": 440,
"FriendPanelSelf": {},
"FriendsDialogSheet": UserConfigDataFriendsMainDialogFriendsDialogSheet(
FriendsFriendsPage: UserConfigDataFriendsMainDialogFriendsDialogSheetFriendsPage(
BuddyList: {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
"4_collapsed": false,
"5_collapsed": false,
"allfriends_collapsed": false,
},
),
FriendsClansPage: UserConfigDataFriendsMainDialogFriendsDialogSheetFriendsPage(
BuddyList: {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
},
),
),
"FriendsState": {},
},
Servers: UserConfigDataServers(
r#DialogServerBrowser.res: {
"xpos": 0,
"ypos": 0,
"wide": 1280,
"tall": 720,
"GameTabs": UserConfigDataServersDialogGameTabs(
InternetGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: Some(""),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
FavoriteGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: Some(""),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
HistoryGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_LastPlayed",
sort_column_secondary: Some("#ServerBrowser_Latency"),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
SpectateGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: Some(""),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
LanGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: Some(""),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
FriendsGames: GameListHaver(
gamelist: GameList(
r##ServerBrowser_Password_hidden: false,
r##ServerBrowser_Bots_hidden: true,
r##ServerBrowser_Secure_hidden: false,
r##ServerBrowser_Servers_hidden: false,
r##ServerBrowser_IPAddress_hidden: true,
r##ServerBrowser_Game_hidden: false,
r##ServerBrowser_Players_hidden: false,
r##ServerBrowser_Map_hidden: false,
r##ServerBrowser_Latency_hidden: false,
sort_column: "#ServerBrowser_Latency",
sort_column_secondary: Some(""),
sort_column_asc: true,
sort_column_secondary_asc: true,
),
),
),
}, },
), "FriendsMainDialog": {
) "FriendPanelSelf": {},
"FriendsDialogSheet": {
"FriendsFriendsPage": {
"BuddyList": {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false,
"4_collapsed": false,
"5_collapsed": false,
"allfriends_collapsed": false
}
},
"FriendsClansPage": {
"BuddyList": {
"0_collapsed": false,
"1_collapsed": false,
"2_collapsed": false,
"3_collapsed": false
}
}
},
"FriendsState": {},
"tall": 440,
"wide": 252,
"xpos": 1028,
"ypos": 280
},
"Servers": {
"DialogServerBrowser.res": {
"GameTabs": {
"InternetGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": "",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"FavoriteGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": "",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"HistoryGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_LastPlayed",
"sort_column_secondary": "#ServerBrowser_Latency",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"SpectateGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": "",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"LanGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": "",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
},
"FriendsGames": {
"gamelist": {
"#ServerBrowser_Password_hidden": false,
"#ServerBrowser_Bots_hidden": true,
"#ServerBrowser_Secure_hidden": false,
"#ServerBrowser_Servers_hidden": false,
"#ServerBrowser_IPAddress_hidden": true,
"#ServerBrowser_Game_hidden": false,
"#ServerBrowser_Players_hidden": false,
"#ServerBrowser_Map_hidden": false,
"#ServerBrowser_Latency_hidden": false,
"sort_column": "#ServerBrowser_Latency",
"sort_column_secondary": "",
"sort_column_asc": true,
"sort_column_secondary_asc": true
}
}
},
"tall": 720,
"wide": 1280,
"xpos": 0,
"ypos": 0
}
}
}
}

View file

@ -2,13 +2,15 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
LightmappedGeneric( {
r#$baseTexture: "cp_mountainlab/concrete/concretefloor003", "LightmappedGeneric": {
r#$bumpmap: "concrete/concretefloor007b_height-ssbump", "$baseTexture": "cp_mountainlab/concrete/concretefloor003",
r#$ssbump: true, "$bumpmap": "concrete/concretefloor007b_height-ssbump",
r#%keywords: "tf", "$ssbump": true,
r#$detail: "overlays/detail001", "%keywords": "tf",
r#$detailscale: 1.9, "$detail": "overlays/detail001",
r#$detailblendmode: 0, "$detailscale": 1.9,
r#$detailblendfactor: 1.0, "$detailblendmode": 0,
) "$detailblendfactor": 1.0
}
}

View file

@ -2,8 +2,12 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
EnumInMap( {
foo: bar( "EnumInMap": {
a: true, "foo": {
), "bar": {
) "a": true
}
}
}
}

View file

@ -2,9 +2,14 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
Sprite( {
r#$spriteorientation: vp_parallel, "Sprite": {
r#$spriteorigin: (0.5, 0.5), "$spriteorientation": "vp_parallel",
r#$basetexture: "editor/game_text", "$spriteorigin": [
r#$no_fullbright: true, 0.5,
) 0.5
],
"$basetexture": "editor/game_text",
"$no_fullbright": true
}
}

View file

@ -1,16 +0,0 @@
---
source: tests/serde.rs
expression: out
---
vmt_reader::unexpected_token
× invalid type: boolean `true`, expected u32
╭─[6:9]
5 │ }
6 │ ╭─▶ data2 {
7 │ │ kind Bar
8 │ │ val1 1
9 │ ├─▶ }
· ╰──── invalid type: boolean `true`, expected u32
10 │ }
╰────

View file

@ -2,8 +2,10 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
MapArray([ {
"foo", "MapArray": [
"bar", "foo",
"asd", "bar",
]) "asd"
]
}

View file

@ -2,15 +2,21 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
r#Resource/specificPanel.res( {
empty: (), "Resource/specificPanel.res": {
array: [ "empty": null,
1, "array": [
2, 1,
3, 2,
], 3
windows_path: "C:\\test\\no newline", ],
bracket_string: "[{]", "windows_path": "C:\\test\\no newline",
r#\\"$translucent": true, "bracket_string": "[{]",
r#$envmaptint: (0.5, 0.5, 0.5), "\\\\\"$translucent\"": true,
) "$envmaptint": [
0.5,
0.5,
0.5
]
}
}

View file

@ -2,15 +2,32 @@
source: tests/serde.rs source: tests/serde.rs
expression: result expression: result
--- ---
Types( {
fixed_array: (1, 2, 3), "Types": {
flex_array: [ "fixed_array": [
1.0, 1,
2.2, 2,
], 3
tuple: (true, 57), ],
single: 1.2, "flex_array": [
triple: (1.2, 1.3, 1.4), 1.0,
single_int: 2.0, 2.2
another_tuple: (8, "foo", false), ],
) "tuple": [
true,
57
],
"single": 1.2,
"triple": [
1.2,
1.3,
1.4
],
"single_int": 2.0,
"another_tuple": [
8,
"foo",
false
]
}
}