diff --git a/Cargo.lock b/Cargo.lock index af2a2fd..cf6e1c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,15 +23,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - [[package]] name = "anstream" version = "0.6.18" @@ -84,9 +75,9 @@ dependencies = [ [[package]] name = "arbitrary-int" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993a810118f8f37e9c4411c86f1c4c940a09a7ab34b7bf2d88d06f50c553fab7" +checksum = "0ab387a0c4143b4fd3804e193946e78c8ab16cf26c5fde2048e4ac3d618c3b64" dependencies = [ "schemars", "serde", @@ -161,7 +152,7 @@ dependencies = [ [[package]] name = "bilge" version = "0.3.0" -source = "git+https://github.com/widberg/bilge.git?branch=paradiso#b7882cdb1443c68b7a35adfc7ec19310794c9e1b" +source = "git+https://github.com/widberg/bilge.git?branch=paradiso#9c16c845dd547a4cd31ed1f19aaff01a6230bbff" dependencies = [ "arbitrary-int", "bilge-impl", @@ -170,7 +161,7 @@ dependencies = [ [[package]] name = "bilge-impl" version = "0.3.0" -source = "git+https://github.com/widberg/bilge.git?branch=paradiso#b7882cdb1443c68b7a35adfc7ec19310794c9e1b" +source = "git+https://github.com/widberg/bilge.git?branch=paradiso#9c16c845dd547a4cd31ed1f19aaff01a6230bbff" dependencies = [ "itertools", "manyhow", @@ -201,6 +192,12 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.8.0" @@ -328,12 +325,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "crc32fast" version = "1.4.2" @@ -408,19 +399,41 @@ name = "ddsfile" version = "0.5.3-unstable" source = "git+https://github.com/widberg/ddsfile.git?branch=master#3a4e7da590bdada6fbbc0b0733fc3f5a53fc3104" dependencies = [ - "bitflags", + "bitflags 2.8.0", "byteorder", "enum-primitive-derive", "num-traits", ] [[package]] -name = "deranged" -version = "0.5.8" +name = "defmt" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1" dependencies = [ - "powerfmt", + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8" +dependencies = [ + "defmt-parser", + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror", ] [[package]] @@ -549,30 +562,6 @@ version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" -[[package]] -name = "iana-time-zone" -version = "0.1.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -622,9 +611,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" dependencies = [ "either", ] @@ -635,6 +624,59 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +[[package]] +name = "jiff" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +dependencies = [ + "defmt", + "jiff-core", + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-link", +] + +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + +[[package]] +name = "jiff-static" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +dependencies = [ + "jiff-core", + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -675,9 +717,9 @@ checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "lz4_flex" -version = "0.11.6" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" +checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" [[package]] name = "manyhow" @@ -726,12 +768,6 @@ dependencies = [ "adler2", ] -[[package]] -name = "num-conv" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" - [[package]] name = "num-traits" version = "0.2.19" @@ -741,15 +777,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - [[package]] name = "once_cell" version = "1.20.3" @@ -793,10 +820,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] -name = "powerfmt" -version = "0.2.0" +name = "portable-atomic-util" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +dependencies = [ + "portable-atomic", +] [[package]] name = "proc-macro-utils" @@ -847,6 +877,26 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "ref-cast" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.3", +] + [[package]] name = "regex" version = "1.11.1" @@ -876,12 +926,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "rustversion" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" - [[package]] name = "ryu" version = "1.0.19" @@ -910,12 +954,13 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.22" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a" dependencies = [ "dyn-clone", "indexmap", + "ref-cast", "schemars_derive", "serde", "serde_json", @@ -923,14 +968,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.22" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +checksum = "d98c67716b46af2f0b8cf752abc930f6f9aecfbf671ecfb531db8a31dbe4e2ba" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.98", + "syn 3.0.3", ] [[package]] @@ -965,13 +1010,13 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "f852137cce035d6a4df67ccce505ff6b3e9fd3a10e3e52b24dc71e650bb1a9bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 3.0.3", ] [[package]] @@ -1001,14 +1046,13 @@ dependencies = [ [[package]] name = "shadow-rs" -version = "1.1.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6" +checksum = "1dd39b4b2077bd36e60ca28c31d494046e747759cb9b507a7d177bb64787c39e" dependencies = [ "const_format", "is_debug", - "time", - "tzdb", + "jiff", ] [[package]] @@ -1052,62 +1096,34 @@ dependencies = [ ] [[package]] -name = "time" -version = "0.3.47" +name = "syn" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" dependencies = [ - "deranged", - "itoa", - "libc", - "num-conv", - "num_threads", - "powerfmt", - "serde_core", - "time-core", - "time-macros", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "time-core" -version = "0.1.8" +name = "thiserror" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "num-conv", - "time-core", + "thiserror-impl", ] [[package]] -name = "tz-rs" -version = "0.7.0" +name = "thiserror-impl" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1" - -[[package]] -name = "tzdb" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ - "iana-time-zone", - "tz-rs", - "tzdb_data", -] - -[[package]] -name = "tzdb_data" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4c81d75033770e40fbd3643ce7472a1a9fd301f90b7139038228daf8af03ec" -dependencies = [ - "tz-rs", + "proc-macro2", + "quote", + "syn 3.0.3", ] [[package]] @@ -1176,7 +1192,6 @@ checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", - "rustversion", "wasm-bindgen-macro", ] @@ -1245,71 +1260,12 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.1", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link 0.1.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" -dependencies = [ - "windows-link 0.1.1", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -1325,7 +1281,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] diff --git a/bff-cli/Cargo.toml b/bff-cli/Cargo.toml index ae7a5ec..14a79d6 100644 --- a/bff-cli/Cargo.toml +++ b/bff-cli/Cargo.toml @@ -15,12 +15,12 @@ indicatif = "0.18.0" mimalloc = { version = "0.1.48", features = ["v3"] } pathdiff = "0.2.1" rayon = "1.10.0" -schemars = "0.8.21" +schemars = "1.2.2" serde_json = "1.0.96" -shadow-rs = { version = "1.1.1", default-features = false, features = ["build"] } +shadow-rs = { version = "2.0.0", default-features = false } [build-dependencies] -shadow-rs = { version = "1.1.1", default-features = false, features = ["build"] } +shadow-rs = { version = "2.0.0", default-features = false, features = ["build"] } [lints] workspace = true diff --git a/bff-cli/build.rs b/bff-cli/build.rs index a73cac3..fe8ed20 100644 --- a/bff-cli/build.rs +++ b/bff-cli/build.rs @@ -1,12 +1,9 @@ use std::env; -use shadow_rs::{BuildPattern, ShadowBuilder}; +use shadow_rs::ShadowBuilder; fn main() { - ShadowBuilder::builder() - .build_pattern(BuildPattern::Lazy) - .build() - .unwrap(); + ShadowBuilder::builder().build().unwrap(); set_windows_exe_options(); } diff --git a/bff/Cargo.toml b/bff/Cargo.toml index deaaed2..91bb25e 100644 --- a/bff/Cargo.toml +++ b/bff/Cargo.toml @@ -20,13 +20,13 @@ flate2 = "1.1.1" hound = "3.5.1" impl-trait-for-tuples = "0.2.2" indexmap = { version = "2.0.0", features = ["serde"] } -itertools = "0.14.0" -lz4_flex = { version = "0.11", default-features = false, features = ["std"] } +itertools = "0.15.0" +lz4_flex = { version = "0.14.0", default-features = false, features = ["std"] } num-traits = "0.2.15" pastey = "0.2.1" petgraph = "0.8.1" scanf = "2.0.0" -schemars = { version = "0.8.21", features = ["indexmap2"] } +schemars = { version = "1.2.2", features = ["indexmap2"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/bff/src/bigfile/versions.rs b/bff/src/bigfile/versions.rs index 1a209f8..38c7438 100644 --- a/bff/src/bigfile/versions.rs +++ b/bff/src/bigfile/versions.rs @@ -3,8 +3,7 @@ use std::borrow::Cow; use binrw::{BinRead, BinWrite}; use derive_more::{Display, From}; use scanf::sscanf; -use schemars::schema::Schema; -use schemars::{JsonSchema, SchemaGenerator}; +use schemars::{JsonSchema, Schema, SchemaGenerator}; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use crate::helpers::PascalString; @@ -147,11 +146,7 @@ impl<'de> Deserialize<'de> for Version { } impl JsonSchema for Version { - fn is_referenceable() -> bool { - true - } - - fn schema_name() -> std::string::String { + fn schema_name() -> Cow<'static, str> { "Version".into() } diff --git a/bff/src/macros/classes.rs b/bff/src/macros/classes.rs index c1c381a..7e80a0b 100644 --- a/bff/src/macros/classes.rs +++ b/bff/src/macros/classes.rs @@ -222,11 +222,7 @@ macro_rules! classes { } impl ::schemars::JsonSchema for $class { - fn is_referenceable() -> bool { - true - } - - fn schema_name() -> ::std::string::String { + fn schema_name() -> ::std::borrow::Cow<'static, str> { stringify!($class).into() } @@ -234,11 +230,9 @@ macro_rules! classes { concat!(module_path!(), "::", stringify!($class)).into() } - fn json_schema(_schema_generator: &mut ::schemars::SchemaGenerator) -> ::schemars::schema::Schema { - ::schemars::schema::Schema::Object(::schemars::schema::SchemaObject { - instance_type: ::core::option::Option::Some(::schemars::schema::InstanceType::Object.into()), - ..::core::default::Default::default() - }) + fn json_schema(_schema_generator: &mut ::schemars::SchemaGenerator) -> ::schemars::Schema { + // Serde cannot serialize or deserialize a zero-variant enum. + ::schemars::json_schema!(false) } } diff --git a/bff/src/names/serde_schema.rs b/bff/src/names/serde_schema.rs index 1ab8be0..f13404a 100644 --- a/bff/src/names/serde_schema.rs +++ b/bff/src/names/serde_schema.rs @@ -1,7 +1,6 @@ use std::borrow::Cow; -use schemars::schema::{InstanceType, Schema, SchemaObject, SingleOrVec}; -use schemars::{JsonSchema, SchemaGenerator}; +use schemars::{JsonSchema, Schema, SchemaGenerator, json_schema}; use serde::{Deserialize, Deserializer, Serialize}; use super::scope::{with_name_context, with_name_context_mut}; @@ -109,11 +108,7 @@ impl<'de> Deserialize<'de> for Name { } impl JsonSchema for Name { - fn is_referenceable() -> bool { - true - } - - fn schema_name() -> std::string::String { + fn schema_name() -> Cow<'static, str> { "Name".into() } @@ -122,12 +117,10 @@ impl JsonSchema for Name { } fn json_schema(_schema_generator: &mut SchemaGenerator) -> Schema { - Schema::Object(SchemaObject { - instance_type: Some(SingleOrVec::Vec(vec![ - InstanceType::String, - InstanceType::Integer, - ])), - ..Default::default() + // A Name serializes as either a resolved string or its signed hash value. + // Deserialization accepts the same two JSON types. + json_schema!({ + "type": ["string", "integer"] }) } }