fix tests

This commit is contained in:
Robin Appelman 2026-07-11 21:20:47 +02:00
commit 8513568506
11 changed files with 394 additions and 424 deletions

418
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,74 +137,61 @@ 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.169" 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 = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" 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",
] ]
[[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",
@ -220,15 +203,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",
@ -237,39 +219,39 @@ dependencies = [
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.4" 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 = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" 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.1.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 = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" 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",
@ -278,9 +260,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",
@ -290,49 +272,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",
@ -342,9 +310,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",
@ -353,34 +321,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",
@ -398,18 +355,28 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.217" version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.217" version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -418,9 +385,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_repr" name = "serde_repr"
version = "0.1.19" version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -467,9 +434,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"
@ -479,9 +446,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",
@ -489,10 +456,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",
@ -533,48 +513,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",
@ -583,9 +543,9 @@ dependencies = [
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.16" 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 = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]] [[package]]
name = "unicode-linebreak" name = "unicode-linebreak"
@ -600,28 +560,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]] [[package]]
name = "vdf-reader" name = "unicode-width"
version = "0.3.0" version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c92e6cbd97e3aefd917c537080b085a4cb926461dddf98daab9a370972ffdfe" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
[[package]]
name = "vdf-reader"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33dd6251fb103f965f549c96a7cb040095a13e1fc1506ea0ef8a2047457f88d6"
dependencies = [ dependencies = [
"logos", "logos",
"miette", "miette",
"parse-display", "parse-display",
"serde", "serde_core",
"thiserror 2.0.11", "thiserror",
] ]
[[package]] [[package]]
name = "vmt-parser" name = "vmt-parser"
version = "0.2.0" version = "0.2.1"
dependencies = [ dependencies = [
"insta", "insta",
"miette", "miette",
"serde", "serde",
"serde_repr", "serde_repr",
"test-case", "test-case",
"thiserror 2.0.11", "thiserror",
"vdf-reader", "vdf-reader",
"walkdir", "walkdir",
] ]
@ -638,82 +604,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,21 +1,21 @@
[package] [package]
name = "vmt-parser" name = "vmt-parser"
version = "0.2.0" version = "0.2.1"
edition = "2021" edition = "2024"
description = "Rust parser for valve vmt files." description = "Rust parser for valve vmt files."
license = "MIT" license = "MIT"
repository = "https://codeberg.org/icewind/vmt-parser" repository = "https://codeberg.org/icewind/vmt-parser"
rust-version = "1.70.0" rust-version = "1.85.0"
[dependencies] [dependencies]
thiserror = "2.0.11" thiserror = "2.0.18"
miette = "7.5.0" miette = "7.6.0"
vdf-reader = "0.3.0" vdf-reader = "0.3.4"
serde = { version = "1.0.217", features = ["derive"] } serde = { version = "1.0.228", features = ["derive"] }
serde_repr = "0.1.19" serde_repr = "0.1.20"
[dev-dependencies] [dev-dependencies]
test-case = "3.3.1" test-case = "3.3.1"
insta = { version = "1.42.1", features = ["ron"] } insta = { version = "1.48.0", features = ["json"] }
miette = { version = "7.5.0", features = ["fancy"] } miette = { version = "7.6.0", features = ["fancy"] }
walkdir = "2.5.0" walkdir = "2.5.0"

View file

@ -24,12 +24,12 @@ fn test_serde(path: &str) {
let raw = read_to_string(path).unwrap(); let raw = read_to_string(path).unwrap();
match from_str(&raw) { match from_str(&raw) {
Ok(result) => { Ok(result) => {
insta::assert_ron_snapshot!(path, result); insta::assert_json_snapshot!(path, result);
if let Material::Patch(patch) = result { if let Material::Patch(patch) = result {
let patched = patch let patched = patch
.resolve(|path| read_to_string(path).map_err(LoaderError::from)) .resolve(|path| read_to_string(path).map_err(LoaderError::from))
.unwrap(); .unwrap();
insta::assert_ron_snapshot!(format!("{}_resolved", path), patched); insta::assert_json_snapshot!(format!("{}_resolved", path), patched);
} }
} }
Err(e) => { Err(e) => {

View file

@ -2,35 +2,44 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
worldvertextransition(WorldVertexTransitionMaterial( {
r#$basetexture: "cp_mountainlab/nature/rockwall001", "worldvertextransition": {
r#$basetexture2: "cp_mountainlab/nature/grass001", "$basetexture": "cp_mountainlab/nature/rockwall001",
r#$blendmodulatetexture: Some("nature/grass_blendmask"), "$basetexture2": "cp_mountainlab/nature/grass001",
r#$decal: false, "$blendmodulatetexture": "nature/grass_blendmask",
r#$detail: None, "$decal": false,
r#$surfaceprop: Some("dirt"), "$detail": null,
r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", "$surfaceprop": "dirt",
r#$color: Vec3((1.0, 1.0, 1.0)), "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0",
r#$decalscale: 1.0, "$color": [
r#$detailscale: Vec2((4.0, 4.0)), 1.0,
r#$detailblendfactor: 1.0, 1.0,
r#$detailblendmode: 1, 1.0
r#$modelmaterial: None, ],
r#$pointsamplemagfilter: false, "$decalscale": 1.0,
r#$seamless_scale: 1.0, "$detailscale": [
r#$alpha: 1.0, 4.0,
r#$alphatest: false, 4.0
r#$alphatestreference: 1.0, ],
r#$distancealpha: false, "$detailblendfactor": 1.0,
r#$nocull: false, "$detailblendmode": 1,
r#$translucent: false, "$modelmaterial": null,
r#$bumpmap: Some("nature/rockwall009_height-ssbump"), "$pointsamplemagfilter": false,
r#$bumpmap2: None, "$seamless_scale": 1.0,
r#$lightwarptexture: None, "$alpha": 1.0,
r#$selfillum: false, "$alphatest": false,
r#$ssbump: true, "$alphatestreference": 1.0,
r#$envmap: None, "$distancealpha": false,
r#$phong: 0.0, "$nocull": false,
r#$nofog: false, "$translucent": false,
r#$ignorez: false, "$bumpmap": "nature/rockwall009_height-ssbump",
)) "$bumpmap2": null,
"$lightwarptexture": null,
"$selfillum": false,
"$ssbump": true,
"$envmap": null,
"$phong": 0.0,
"$nofog": false,
"$ignorez": false
}
}

View file

@ -2,32 +2,41 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
lightmappedgeneric(LightMappedGenericMaterial( {
r#$basetexture: "cp_mountainlab/concrete/concretefloor003", "lightmappedgeneric": {
r#$decal: false, "$basetexture": "cp_mountainlab/concrete/concretefloor003",
r#$detail: Some("overlays/detail001"), "$decal": false,
r#$surfaceprop: None, "$detail": "overlays/detail001",
r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", "$surfaceprop": null,
r#$color: Vec3((1.0, 1.0, 1.0)), "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0",
r#$decalscale: 1.0, "$color": [
r#$detailscale: Vec2((1.9, 1.9)), 1.0,
r#$detailblendfactor: 1.0, 1.0,
r#$detailblendmode: 0, 1.0
r#$modelmaterial: None, ],
r#$pointsamplemagfilter: false, "$decalscale": 1.0,
r#$seamless_scale: 1.0, "$detailscale": [
r#$alpha: 1.0, 1.9,
r#$alphatest: false, 1.9
r#$alphatestreference: 1.0, ],
r#$distancealpha: false, "$detailblendfactor": 1.0,
r#$nocull: false, "$detailblendmode": 0,
r#$translucent: false, "$modelmaterial": null,
r#$bumpmap: Some("concrete/concretefloor007b_height-ssbump"), "$pointsamplemagfilter": false,
r#$lightwarptexture: None, "$seamless_scale": 1.0,
r#$selfillum: false, "$alpha": 1.0,
r#$ssbump: true, "$alphatest": false,
r#$envmap: None, "$alphatestreference": 1.0,
r#$phong: 0.0, "$distancealpha": false,
r#$nofog: false, "$nocull": false,
r#$ignorez: false, "$translucent": false,
)) "$bumpmap": "concrete/concretefloor007b_height-ssbump",
"$lightwarptexture": null,
"$selfillum": false,
"$ssbump": true,
"$envmap": null,
"$phong": 0.0,
"$nofog": false,
"$ignorez": false
}
}

View file

@ -2,31 +2,44 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
vertexlitgeneric(VertexLitGenericMaterial( {
r#$basetexture: Some("models/props_trainyard/handrail128_skin2"), "vertexlitgeneric": {
r#$detail: None, "$basetexture": "models/props_trainyard/handrail128_skin2",
r#$decaltexture: None, "$detail": null,
r#$color2: Vec3((1.0, 1.0, 1.0)), "$decaltexture": null,
r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", "$color2": [
r#$color: Vec3((1.0, 1.0, 1.0)), 1.0,
r#$decalscale: Vec2((4.0, 4.0)), 1.0,
r#$detailblendfactor: 1.0, 1.0
r#$detailblendmode: 1, ],
r#$modelmaterial: None, "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0",
r#$pointsamplemagfilter: false, "$color": [
r#$seamless_scale: 1.0, 1.0,
r#$alpha: 1.0, 1.0,
r#$alphatest: false, 1.0
r#$alphatestreference: 1.0, ],
r#$distancealpha: false, "$decalscale": [
r#$nocull: false, 4.0,
r#$translucent: false, 4.0
r#$bumpmap: None, ],
r#$lightwarptexture: None, "$detailblendfactor": 1.0,
r#$selfillum: false, "$detailblendmode": 1,
r#$ssbump: false, "$modelmaterial": null,
r#$envmap: None, "$pointsamplemagfilter": false,
r#$phong: 0.0, "$seamless_scale": 1.0,
r#$nofog: false, "$alpha": 1.0,
r#$ignorez: false, "$alphatest": false,
)) "$alphatestreference": 1.0,
"$distancealpha": false,
"$nocull": false,
"$translucent": false,
"$bumpmap": null,
"$lightwarptexture": null,
"$selfillum": false,
"$ssbump": false,
"$envmap": null,
"$phong": 0.0,
"$nofog": false,
"$ignorez": false
}
}

View file

@ -2,20 +2,26 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
unlitgeneric(UnlitGenericMaterial( {
r#$basetexture: Some("vgui/pve/mvm_backpack"), "unlitgeneric": {
r#$surfaceprop: None, "$basetexture": "vgui/pve/mvm_backpack",
r#$model: false, "$surfaceprop": null,
r#$color: Vec3((1.0, 1.0, 1.0)), "$model": false,
r#$alpha: 1.0, "$color": [
r#$alphatest: false, 1.0,
r#$alphatestreference: 1.0, 1.0,
r#$nocull: false, 1.0
r#$translucent: true, ],
r#$bumpmap: None, "$alpha": 1.0,
r#$ignorez: true, "$alphatest": false,
r#$nofog: false, "$alphatestreference": 1.0,
r#$receiveflashlight: false, "$nocull": false,
singlepassflashlight: false, "$translucent": true,
r#$no_fullbright: true, "$bumpmap": null,
)) "$ignorez": true,
"$nofog": false,
"$receiveflashlight": false,
"singlepassflashlight": false,
"$no_fullbright": true
}
}

View file

@ -2,9 +2,11 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
patch(PatchMaterial( {
include: "tests/data/concretefloor003.vmt", "patch": {
replace: { "include": "tests/data/concretefloor003.vmt",
"$ssbump": "0", "replace": {
}, "$ssbump": "0"
)) }
}
}

View file

@ -2,32 +2,41 @@
source: tests/parse.rs source: tests/parse.rs
expression: patched expression: patched
--- ---
lightmappedgeneric(LightMappedGenericMaterial( {
r#$basetexture: "cp_mountainlab/concrete/concretefloor003", "lightmappedgeneric": {
r#$decal: false, "$basetexture": "cp_mountainlab/concrete/concretefloor003",
r#$detail: Some("overlays/detail001"), "$decal": false,
r#$surfaceprop: None, "$detail": "overlays/detail001",
r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", "$surfaceprop": null,
r#$color: Vec3((1.0, 1.0, 1.0)), "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0",
r#$decalscale: 1.0, "$color": [
r#$detailscale: Vec2((1.9, 1.9)), 1.0,
r#$detailblendfactor: 1.0, 1.0,
r#$detailblendmode: 0, 1.0
r#$modelmaterial: None, ],
r#$pointsamplemagfilter: false, "$decalscale": 1.0,
r#$seamless_scale: 1.0, "$detailscale": [
r#$alpha: 1.0, 1.9,
r#$alphatest: false, 1.9
r#$alphatestreference: 1.0, ],
r#$distancealpha: false, "$detailblendfactor": 1.0,
r#$nocull: false, "$detailblendmode": 0,
r#$translucent: false, "$modelmaterial": null,
r#$bumpmap: Some("concrete/concretefloor007b_height-ssbump"), "$pointsamplemagfilter": false,
r#$lightwarptexture: None, "$seamless_scale": 1.0,
r#$selfillum: false, "$alpha": 1.0,
r#$ssbump: false, "$alphatest": false,
r#$envmap: None, "$alphatestreference": 1.0,
r#$phong: 0.0, "$distancealpha": false,
r#$nofog: false, "$nocull": false,
r#$ignorez: false, "$translucent": false,
)) "$bumpmap": "concrete/concretefloor007b_height-ssbump",
"$lightwarptexture": null,
"$selfillum": false,
"$ssbump": false,
"$envmap": null,
"$phong": 0.0,
"$nofog": false,
"$ignorez": false
}
}

View file

@ -2,8 +2,16 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
subrect(SubRectMaterial( {
r#$material: "decals/decals_mod2x", "subrect": {
r#$pos: Vec2((64.0, 0.0)), "$material": "decals/decals_mod2x",
r#$size: Vec2((64.0, 64.0)), "$pos": [
)) 64.0,
0.0
],
"$size": [
64.0,
64.0
]
}
}

View file

@ -2,20 +2,26 @@
source: tests/parse.rs source: tests/parse.rs
expression: result expression: result
--- ---
water(WaterMaterial( {
r#$basetexture: Some("swamp/water/water_murky"), "water": {
r#$abovewater: true, "$basetexture": "swamp/water/water_murky",
r#$bottommaterial: Some("swamp/water/water_murky_beneath.vmt"), "$abovewater": true,
r#$underwaterover: None, "$bottommaterial": "swamp/water/water_murky_beneath.vmt",
r#$bumpmap: None, "$underwaterover": null,
r#$normalmap: Some("water/tfwater001_normal"), "$bumpmap": null,
r#$dudvframe: 0, "$normalmap": "water/tfwater001_normal",
r#$bumpframe: 0, "$dudvframe": 0,
r#$bumptransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", "$bumpframe": 0,
r#$flashlighttint: 1.0, "$bumptransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0",
r#$fogenable: true, "$flashlighttint": 1.0,
r#$fogcolor: Vec3((35.0, 32.0, 20.0)), "$fogenable": true,
r#$fogstart: 0.0, "$fogcolor": [
r#$fogend: 170.0, 35.0,
r#$lightmapwaterfog: false, 32.0,
)) 20.0
],
"$fogstart": 0.0,
"$fogend": 170.0,
"$lightmapwaterfog": false
}
}