From 4d620c79eb0624a6438ce6e6abbff963b10e3be4 Mon Sep 17 00:00:00 2001 From: Sean Tang <171081544+seant-aws@users.noreply.github.com> Date: Fri, 14 Aug 2026 20:57:13 +0000 Subject: [PATCH] fix: bump openjd-rs crate deps to 0.3.0/0.5.0/0.5.0 Bump Rust crate dependencies to pick up wrap-action bug fixes: - openjd-expr 0.2.1 -> 0.3.0 - openjd-model 0.4.0 -> 0.5.0 (resolves 0.5.1 via semver) - openjd-sessions 0.4.0 -> 0.5.0 (resolves 0.5.1 via semver) Adapts range_expr.rs for expr 0.3.0 breaking changes: - IntRange fields are now private (use accessor methods) - RangeExpr::from_values returns Result Updates 3 string-operation-counting test expectations to match expr 0.3.0's more granular operation budgeting. Signed-off-by: Sean Tang <171081544+seant-aws@users.noreply.github.com> --- Cargo.lock | 273 +++++++--------- THIRD-PARTY-LICENSES.txt | 292 ++---------------- rust-bindings/Cargo.toml | 6 +- rust-bindings/src/expr/range_expr.rs | 19 +- .../expr/test_string_operation_counting.py | 21 +- 5 files changed, 156 insertions(+), 455 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 77c263bd..b7bd026e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,33 +2,20 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.4", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] [[package]] name = "android_system_properties" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc" dependencies = [ "libc", ] @@ -109,9 +96,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base64" -version = "0.22.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" [[package]] name = "bitflags" @@ -121,9 +108,9 @@ checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" [[package]] name = "bstr" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f7dc094d718f2e1c1559ad110e27eeaae14a5465d3d56dd6dbd793079fbd530" +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f" dependencies = [ "memchr", "regex-automata", @@ -153,9 +140,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.3.0" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89588d05638b5b4594a3348a2d6c20277e43a7f5c5202b05cc56888475a47b8" +checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" dependencies = [ "find-msvc-tools", "shlex", @@ -237,9 +224,9 @@ dependencies = [ [[package]] name = "either" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" +checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" [[package]] name = "encoding_rs" @@ -252,9 +239,9 @@ dependencies = [ [[package]] name = "encoding_rs_io" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" +checksum = "fba3fe847045ecff794b9c138293a80db914678c453ad63fbf0c6a9eb6e00b22" dependencies = [ "encoding_rs", ] @@ -288,44 +275,44 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-macro" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] name = "futures-sink" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-macro", @@ -378,20 +365,6 @@ dependencies = [ "wasi", ] -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi 5.3.0", - "wasip2", - "wasm-bindgen", -] - [[package]] name = "getrandom" version = "0.4.3" @@ -400,14 +373,14 @@ checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", - "r-efi 6.0.0", + "r-efi", ] [[package]] name = "granit-parser" -version = "0.0.7" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03f81ad4732830d85cfd417a9f62cde6dadda4354d37d078a6084a19560aa2d" +checksum = "7c92814c286f45b5ed1498ce9547bc9637b473eba7037f8aee6a4d5a3c1e051c" dependencies = [ "arraydeque", "smallvec", @@ -520,9 +493,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" dependencies = [ "cfg-if", "futures-util", @@ -666,9 +639,9 @@ checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" dependencies = [ "num-traits", ] @@ -706,9 +679,9 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "openjd-expr" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bbd809c2a32753829af3a133664a19d7bf93830e57267bc79014ce88675a24" +checksum = "755fa618da30141da46db5b9a92ca01a645726979ef1f80ee0c6089c66d11793" dependencies = [ "regex", "regex-syntax", @@ -723,9 +696,9 @@ dependencies = [ [[package]] name = "openjd-model" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "708aae249e4894aad4effb1ff72ed4d0aefe4b2b4481971901c31c388b155967" +checksum = "503daef7c3f611d5dab0401b989bcca34bf93c6ca4e92b822f642072673a4edd" dependencies = [ "indexmap", "openjd-expr", @@ -755,9 +728,9 @@ dependencies = [ [[package]] name = "openjd-sessions" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3575a272f79ca47691fb4b7b6fa4d704b452617483e542f0a90cf4efbdb281" +checksum = "fc4ea270aaecf3bcd98c28c2d7222b9c75d15f95e26e00f25f18fdfdff9155fa" dependencies = [ "bitflags", "futures-util", @@ -775,7 +748,6 @@ dependencies = [ "tokio", "tokio-util", "uuid", - "which", "windows", ] @@ -843,9 +815,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "portable-atomic" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "portable-atomic-util" @@ -893,9 +865,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c" +checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b" dependencies = [ "libc", "once_cell", @@ -907,18 +879,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078" +checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9" dependencies = [ "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b" +checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327" dependencies = [ "libc", "pyo3-build-config", @@ -937,9 +909,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771" +checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -949,9 +921,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362" +checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952" dependencies = [ "heck", "proc-macro2", @@ -1030,12 +1002,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "r-efi" version = "6.0.0" @@ -1092,9 +1058,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -1271,15 +1237,13 @@ dependencies = [ [[package]] name = "serde-saphyr" -version = "0.0.29" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd22781911de0ca6debda95f073c8f18bec65d1a94f1fa9573f3102e514cea4" +checksum = "af2c6921c8ce48fb1b052b457619d008834039d80325992ed3bc55bbe6c155ad" dependencies = [ - "ahash", "annotate-snippets", "base64", "encoding_rs_io", - "getrandom 0.3.4", "granit-parser", "nohash-hasher", "num-traits", @@ -1381,34 +1345,35 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "sval" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb9efbae90f97301f4d25f3be63dfd99d6b7af9d088228a52ec960d649b2e7d" +checksum = "ec4a2a7d92fa86fcc6222e4c3845f8486cff899d9db32480b26c91a5dbf2e22d" [[package]] name = "sval_buffer" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5c0280ea0af40b3a1fd0b532680b5067482ffb81412ee66ec04b1d9952b49a" +checksum = "f4324db9ac500c609d659b752edf9c8abbf2233f8afd61a503fd6f88ed625032" dependencies = [ "sval", "sval_ref", + "zerocopy", ] [[package]] name = "sval_dynamic" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b9067f2e68f58e110cf8019a268057e3791cf74b0fdb1b3c7c6e49104f44e6" +checksum = "4046add0eecf55e680b9e207edf5fc7737b18a1d950db363d97e7f1b2d7c629c" dependencies = [ "sval", ] [[package]] name = "sval_fmt" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ebdbf0e4b175884aa587fcf551c16dabe245ea04235abdd8cbbd160b27ed5a" +checksum = "911a3486b5984a0a4f25edefcf2c2dba23654c29f63e75493b671d338bf24243" dependencies = [ "itoa", "ryu", @@ -1417,9 +1382,9 @@ dependencies = [ [[package]] name = "sval_json" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e448d9fa216a6c16670b28d624fbbcf5c04e41eb187bd7c52e01222ffa72a12" +checksum = "da53aae7c737b5b5f1be4bcb0ff20e057bf6b2ee4e9d025560075c5830d09f95" dependencies = [ "itoa", "ryu", @@ -1428,9 +1393,9 @@ dependencies = [ [[package]] name = "sval_nested" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021de5b5c26efd544c694cef9b8a9abe8633481bf3be1ea145a18a740818b291" +checksum = "df24df43cbdc4bb8c9f5ed19d0d57dc8f60a1a4259cdce52d597fe774ad3a71f" dependencies = [ "sval", "sval_buffer", @@ -1439,18 +1404,18 @@ dependencies = [ [[package]] name = "sval_ref" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ef5ffec8bc52ded04ee424ab8d959e25e64fd40a48a16d21f8991ce824c1bb" +checksum = "2bebc17f0f1fad060e57b778728d41ef87627e9111a6365d7463472cb58fc1b3" dependencies = [ "sval", ] [[package]] name = "sval_serde" -version = "2.20.0" +version = "2.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b983833a8a2390f89ebcf9b9acd06883017014b4ffd72ee28e0c9de6852039f5" +checksum = "9f26fe3f6a68b40e6c8d654ea48c00e4316272fddf68c80493714c1b034ae70b" dependencies = [ "serde_core", "sval", @@ -1487,18 +1452,18 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca" [[package]] name = "thiserror" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", @@ -1507,9 +1472,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1d5e639ff6bab73cb6885cc7e7b1de96c3f32c68ec55f3952614bec1092244" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", "num-conv", @@ -1565,13 +1530,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba" +checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] @@ -1589,9 +1554,9 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.3+spec-1.1.0" +version = "1.1.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" dependencies = [ "indexmap", "serde_core", @@ -1613,9 +1578,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ "winnow", ] @@ -1740,9 +1705,9 @@ dependencies = [ [[package]] name = "value-bag" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef73bfbaf3216cb59c205d7176bee1194e0d84348979da31f4a71fefe3c2054e" +checksum = "068e763e8279de7ab94b6afebded2cb701678af094feb1c12ccb061b4783c1be" dependencies = [ "value-bag-serde1", "value-bag-sval2", @@ -1750,9 +1715,9 @@ dependencies = [ [[package]] name = "value-bag-serde1" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b92170db3db8a6354f12a5b7f13a5453928433e08fc46aee51eedfa8f7a28a1" +checksum = "417d6197dd0ee696783d6be4276ac6ea74b985e00024c85ccfb37aff4f2bed82" dependencies = [ "erased-serde", "serde_core", @@ -1761,9 +1726,9 @@ dependencies = [ [[package]] name = "value-bag-sval2" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf9832097ca044466ae3f1aa43a943d4e450b7c3b8cdf65363875df07da79a0" +checksum = "c61f7251ecde2c9ed431bbe0659853e7991753447447bbf1ae59d8b31c578d4e" dependencies = [ "sval", "sval_buffer", @@ -1774,32 +1739,17 @@ dependencies = [ "sval_serde", ] -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasip2" -version = "1.0.4+wasi-0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" -dependencies = [ - "wit-bindgen", -] - [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" dependencies = [ "cfg-if", "once_cell", @@ -1810,9 +1760,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1820,9 +1770,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" dependencies = [ "bumpalo", "proc-macro2", @@ -1833,22 +1783,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" dependencies = [ "unicode-ident", ] -[[package]] -name = "which" -version = "8.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3ef584124b911bcc3875c2f1472e80f24361ceb789bd1c62b3e9a3df9ff43c" -dependencies = [ - "libc", -] - [[package]] name = "windows" version = "0.62.2" @@ -1974,26 +1915,20 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - [[package]] name = "zerocopy" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", diff --git a/THIRD-PARTY-LICENSES.txt b/THIRD-PARTY-LICENSES.txt index fa0fb1ed..9899747e 100644 --- a/THIRD-PARTY-LICENSES.txt +++ b/THIRD-PARTY-LICENSES.txt @@ -95,7 +95,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------ -** typing-inspection; version 0.4.2 -- https://pypi.org/project/typing-inspection/ +** typing-inspection; version 0.4.4 -- https://pypi.org/project/typing-inspection/ MIT License Copyright (c) Pydantic Services Inc. 2025 to present @@ -1446,212 +1446,6 @@ PERFORMANCE OF THIS SOFTWARE. ------- -** zerocopy; version 0.8.55 -- https://crates.io/crates/zerocopy - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2023 The Fuchsia Authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - ------ ** annotate-snippets; version 0.12.16 -- https://crates.io/crates/annotate-snippets ** anstyle; version 1.0.14 -- https://crates.io/crates/anstyle @@ -1860,11 +1654,11 @@ PERFORMANCE OF THIS SOFTWARE. ------ -** futures-core; version 0.3.33 -- https://crates.io/crates/futures-core -** futures-macro; version 0.3.33 -- https://crates.io/crates/futures-macro -** futures-sink; version 0.3.33 -- https://crates.io/crates/futures-sink -** futures-task; version 0.3.33 -- https://crates.io/crates/futures-task -** futures-util; version 0.3.33 -- https://crates.io/crates/futures-util +** futures-core; version 0.3.34 -- https://crates.io/crates/futures-core +** futures-macro; version 0.3.34 -- https://crates.io/crates/futures-macro +** futures-sink; version 0.3.34 -- https://crates.io/crates/futures-sink +** futures-task; version 0.3.34 -- https://crates.io/crates/futures-task +** futures-util; version 0.3.34 -- https://crates.io/crates/futures-util Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2070,15 +1864,13 @@ limitations under the License. ------ -** ahash; version 0.8.12 -- https://crates.io/crates/ahash ** arc-swap; version 1.9.2 -- https://crates.io/crates/arc-swap -** base64; version 0.22.1 -- https://crates.io/crates/base64 +** base64; version 0.23.1 -- https://crates.io/crates/base64 ** bitflags; version 2.13.1 -- https://crates.io/crates/bitflags -** bstr; version 1.13.0 -- https://crates.io/crates/bstr -** bumpalo; version 3.20.3 -- https://crates.io/crates/bumpalo +** bstr; version 1.13.1 -- https://crates.io/crates/bstr ** cfg-if; version 1.0.4 -- https://crates.io/crates/cfg-if -** either; version 1.16.0 -- https://crates.io/crates/either -** encoding_rs_io; version 0.1.7 -- https://crates.io/crates/encoding_rs_io +** either; version 1.17.0 -- https://crates.io/crates/either +** encoding_rs_io; version 0.1.8 -- https://crates.io/crates/encoding_rs_io ** equivalent; version 1.0.2 -- https://crates.io/crates/equivalent ** errno; version 0.3.14 -- https://crates.io/crates/errno ** hashbrown; version 0.16.1 -- https://crates.io/crates/hashbrown @@ -2086,13 +1878,12 @@ limitations under the License. ** heck; version 0.5.0 -- https://crates.io/crates/heck ** indexmap; version 2.14.0 -- https://crates.io/crates/indexmap ** itertools; version 0.14.0 -- https://crates.io/crates/itertools -** js-sys; version 0.3.103 -- https://crates.io/crates/js-sys ** log; version 0.4.33 -- https://crates.io/crates/log ** num-traits; version 0.2.19 -- https://crates.io/crates/num-traits ** once_cell; version 1.21.4 -- https://crates.io/crates/once_cell ** ordermap; version 1.2.0 -- https://crates.io/crates/ordermap ** pyo3-log; version 0.13.4 -- https://crates.io/crates/pyo3-log -** regex-automata; version 0.4.16 -- https://crates.io/crates/regex-automata +** regex-automata; version 0.4.18 -- https://crates.io/crates/regex-automata ** regex-syntax; version 0.8.11 -- https://crates.io/crates/regex-syntax ** regex; version 1.13.1 -- https://crates.io/crates/regex ** signal-hook-registry; version 1.4.8 -- https://crates.io/crates/signal-hook-registry @@ -2101,14 +1892,8 @@ limitations under the License. ** unicode-width; version 0.2.2 -- https://crates.io/crates/unicode-width ** unicode_names2; version 1.3.0 -- https://crates.io/crates/unicode_names2 ** uuid; version 1.24.0 -- https://crates.io/crates/uuid -** value-bag; version 1.13.1 -- https://crates.io/crates/value-bag +** value-bag; version 1.13.2 -- https://crates.io/crates/value-bag ** wasi; version 0.11.1+wasi-snapshot-preview1 -- https://crates.io/crates/wasi -** wasip2; version 1.0.4+wasi-0.2.12 -- https://crates.io/crates/wasip2 -** wasm-bindgen-macro-support; version 0.2.126 -- https://crates.io/crates/wasm-bindgen-macro-support -** wasm-bindgen-macro; version 0.2.126 -- https://crates.io/crates/wasm-bindgen-macro -** wasm-bindgen-shared; version 0.2.126 -- https://crates.io/crates/wasm-bindgen-shared -** wasm-bindgen; version 0.2.126 -- https://crates.io/crates/wasm-bindgen -** wit-bindgen; version 0.57.1 -- https://crates.io/crates/wit-bindgen Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2313,7 +2098,6 @@ limitations under the License. ------ -** getrandom; version 0.3.4 -- https://crates.io/crates/getrandom ** getrandom; version 0.4.3 -- https://crates.io/crates/getrandom Apache License Version 2.0, January 2004 @@ -2522,27 +2306,26 @@ limitations under the License. ** arraydeque; version 0.5.1 -- https://crates.io/crates/arraydeque ** get-size-derive2; version 0.7.4 -- https://crates.io/crates/get-size-derive2 ** get-size2; version 0.7.4 -- https://crates.io/crates/get-size2 -** granit-parser; version 0.0.7 -- https://crates.io/crates/granit-parser +** granit-parser; version 1.0.1 -- https://crates.io/crates/granit-parser ** itoa; version 1.0.18 -- https://crates.io/crates/itoa ** libc; version 0.2.189 -- https://crates.io/crates/libc ** manyhow-macros; version 0.11.4 -- https://crates.io/crates/manyhow-macros -** openjd-expr; version 0.2.1 -- https://crates.io/crates/openjd-expr -** openjd-model; version 0.4.0 -- https://crates.io/crates/openjd-model -** openjd-sessions; version 0.4.0 -- https://crates.io/crates/openjd-sessions +** openjd-expr; version 0.3.0 -- https://crates.io/crates/openjd-expr +** openjd-model; version 0.5.1 -- https://crates.io/crates/openjd-model +** openjd-sessions; version 0.5.1 -- https://crates.io/crates/openjd-sessions ** pin-project-lite; version 0.2.17 -- https://crates.io/crates/pin-project-lite -** portable-atomic; version 1.14.0 -- https://crates.io/crates/portable-atomic +** portable-atomic; version 1.15.0 -- https://crates.io/crates/portable-atomic ** proc-macro2; version 1.0.107 -- https://crates.io/crates/proc-macro2 -** pyo3-ffi; version 0.29.0 -- https://crates.io/crates/pyo3-ffi -** pyo3-macros-backend; version 0.29.0 -- https://crates.io/crates/pyo3-macros-backend -** pyo3-macros; version 0.29.0 -- https://crates.io/crates/pyo3-macros -** pyo3; version 0.29.0 -- https://crates.io/crates/pyo3 +** pyo3-ffi; version 0.29.2 -- https://crates.io/crates/pyo3-ffi +** pyo3-macros-backend; version 0.29.2 -- https://crates.io/crates/pyo3-macros-backend +** pyo3-macros; version 0.29.2 -- https://crates.io/crates/pyo3-macros +** pyo3; version 0.29.2 -- https://crates.io/crates/pyo3 ** quote; version 1.0.47 -- https://crates.io/crates/quote -** r-efi; version 5.3.0 -- https://crates.io/crates/r-efi ** r-efi; version 6.0.0 -- https://crates.io/crates/r-efi ** rustc-hash; version 2.1.3 -- https://crates.io/crates/rustc-hash ** rustversion; version 1.0.23 -- https://crates.io/crates/rustversion ** ryu; version 1.0.23 -- https://crates.io/crates/ryu -** serde-saphyr; version 0.0.29 -- https://crates.io/crates/serde-saphyr +** serde-saphyr; version 1.0.1 -- https://crates.io/crates/serde-saphyr ** serde; version 1.0.229 -- https://crates.io/crates/serde ** serde_core; version 1.0.229 -- https://crates.io/crates/serde_core ** serde_derive; version 1.0.229 -- https://crates.io/crates/serde_derive @@ -2551,8 +2334,8 @@ limitations under the License. ** siphasher; version 1.0.3 -- https://crates.io/crates/siphasher ** syn; version 2.0.119 -- https://crates.io/crates/syn ** syn; version 3.0.3 -- https://crates.io/crates/syn -** thiserror-impl; version 2.0.19 -- https://crates.io/crates/thiserror-impl -** thiserror; version 2.0.19 -- https://crates.io/crates/thiserror +** thiserror-impl; version 2.0.20 -- https://crates.io/crates/thiserror-impl +** thiserror; version 2.0.20 -- https://crates.io/crates/thiserror ** unicode-ident; version 1.0.24 -- https://crates.io/crates/unicode-ident Apache License Version 2.0, January 2004 @@ -2682,29 +2465,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------- -** which; version 8.0.5 -- https://crates.io/crates/which -Copyright (c) 2015 fangyuanziti - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - ------ ** bytes; version 1.12.1 -- https://crates.io/crates/bytes Copyright (c) 2018 Carl Lerche @@ -2793,7 +2553,7 @@ DEALINGS IN THE SOFTWARE. ------ -** tokio-macros; version 2.7.1 -- https://crates.io/crates/tokio-macros +** tokio-macros; version 2.7.2 -- https://crates.io/crates/tokio-macros MIT License Copyright (c) 2019 Yoshua Wuyts @@ -3000,7 +2760,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------ -** aho-corasick; version 1.1.4 -- https://crates.io/crates/aho-corasick +** aho-corasick; version 1.1.5 -- https://crates.io/crates/aho-corasick ** memchr; version 2.8.3 -- https://crates.io/crates/memchr The MIT License (MIT) diff --git a/rust-bindings/Cargo.toml b/rust-bindings/Cargo.toml index 08c61f17..09feb2ac 100644 --- a/rust-bindings/Cargo.toml +++ b/rust-bindings/Cargo.toml @@ -12,9 +12,9 @@ name = "_openjd_rs" crate-type = ["cdylib", "rlib"] [dependencies] -openjd-expr = "0.2.1" -openjd-model = "0.4.0" -openjd-sessions = "0.4.0" +openjd-expr = "0.3.0" +openjd-model = "0.5.0" +openjd-sessions = "0.5.0" tokio = { version = "1", features = ["rt-multi-thread"] } uuid = { version = "1", features = ["v4"] } serde_json = "1" diff --git a/rust-bindings/src/expr/range_expr.rs b/rust-bindings/src/expr/range_expr.rs index 512b0c89..da2eca3f 100644 --- a/rust-bindings/src/expr/range_expr.rs +++ b/rust-bindings/src/expr/range_expr.rs @@ -39,19 +39,19 @@ impl PyIntRange { /// Smallest value in the range (always <= ``end``). #[getter] fn start(&self) -> i64 { - self.inner.start + self.inner.start() } /// Largest value in the range (always >= ``start``). #[getter] fn end(&self) -> i64 { - self.inner.end + self.inner.end() } /// Step between successive values (always > 0). #[getter] fn step(&self) -> i64 { - self.inner.step + self.inner.step() } fn __len__(&self) -> usize { @@ -83,7 +83,9 @@ impl PyIntRange { fn __repr__(&self) -> String { format!( "IntRange(start={}, end={}, step={})", - self.inner.start, self.inner.end, self.inner.step + self.inner.start(), + self.inner.end(), + self.inner.step() ) } @@ -91,7 +93,7 @@ impl PyIntRange { fn __reduce__<'py>(&self, py: Python<'py>) -> PyResult<(Bound<'py, PyType>, (i64, i64, i64))> { Ok(( py.get_type::(), - (self.inner.start, self.inner.end, self.inner.step), + (self.inner.start(), self.inner.end(), self.inner.step()), )) } } @@ -178,7 +180,8 @@ impl PyRangeExpr { )); } Ok(PyRangeExpr { - inner: RangeExpr::from_values(ints), + inner: RangeExpr::from_values(ints) + .map_err(|e| PyRangeExprError::new_err(e.to_string()))?, }) } @@ -188,7 +191,7 @@ impl PyRangeExpr { self.inner .ranges() .first() - .map(|r| r.start) + .map(|r| r.start()) .ok_or_else(|| pyo3::exceptions::PyValueError::new_err("Range expression is empty")) } @@ -198,7 +201,7 @@ impl PyRangeExpr { self.inner .ranges() .last() - .map(|r| r.end) + .map(|r| r.end()) .ok_or_else(|| pyo3::exceptions::PyValueError::new_err("Range expression is empty")) } diff --git a/test/openjd/expr/test_string_operation_counting.py b/test/openjd/expr/test_string_operation_counting.py index 60ed6d3f..8714c190 100644 --- a/test/openjd/expr/test_string_operation_counting.py +++ b/test/openjd/expr/test_string_operation_counting.py @@ -108,9 +108,11 @@ def test_repr_sh_string(self) -> None: """repr_sh() on a string counts string ops.""" result = parse_expression("repr_sh('a' * 500)").evaluate_with_metrics() # __mul__: 1 + ceil(500/256)=2 = 3 - # repr_sh: 1 + ceil(500/256)=2 = 3 - # total = 6 - assert result.operation_count == 6 + # repr_sh: charges the worst-case escaped output bound + # escaped_bound(500) = 500*6 + 2 = 3002 + # 1 + ceil(3002/256)=12 = 13 + # total = 16 + assert result.operation_count == 16 def test_len_does_not_count_string_ops(self) -> None: """len() is a simple lookup and does NOT add string ops.""" @@ -271,15 +273,16 @@ def test_short_string_functions(self, expr: str, expected_count: int) -> None: def test_join_counts_list_and_string(self) -> None: """join() counts list iteration AND string ops on separator processing.""" - # join(['a','b','c'], ',') = 1 call + 3 list iterations = 4 - # (join counts list items, not string ops on the items themselves) + # join charges: 1 call + list-iteration ops + string-length ops on the result + # Observed total from openjd-rs 0.3.0 = 5 result = parse_expression("['a','b','c'].join(',')").evaluate_with_metrics() - assert result.operation_count == 4 + assert result.operation_count == 5 def test_zfill_counts_string_ops(self) -> None: """zfill() counts string ops on the input.""" result = parse_expression("('a' * 300).zfill(500)").evaluate_with_metrics() # __mul__: 1 + ceil(300/256)=2 = 3 - # zfill: 1 + ceil(300/256)=2 = 3 - # total = 6 - assert result.operation_count == 6 + # zfill: charges on the output length (500) + # 1 + ceil(500/256)=2 + 1 dispatch = 4 + # total = 7 + assert result.operation_count == 7