diff --git a/Cargo.toml b/Cargo.toml index 4a7c2dc938..7a1c5eefd7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,8 +31,6 @@ exclude = [ "module/alias/wtest", "module/core/meta_tools", "module/core/for_each", - "module/core/reflect_tools", - "module/core/format_tools", "step", ] # default-members = [ "module/core/wtools" ] @@ -124,14 +122,14 @@ version = "~0.1.4" path = "module/alias/std_x" [workspace.dependencies.unilang_parser] -version = "~0.10.0" +version = "~0.11.0" path = "module/move/unilang_parser" # Point to original unilang_parser ## data_type [workspace.dependencies.data_type] -version = "~0.14.0" +version = "~0.15.0" path = "module/core/data_type" default-features = false @@ -149,7 +147,7 @@ version = "~0.1.0" path = "module/core/type_constructor_derive_pair_meta" [workspace.dependencies.interval_adapter] -version = "~0.35.0" +version = "~0.36.0" path = "module/core/interval_adapter" default-features = false # features = [ "enabled" ] @@ -161,7 +159,7 @@ default-features = false # features = [ "enabled" ] [workspace.dependencies.collection_tools] -version = "~0.23.0" +version = "~0.25.0" path = "module/core/collection_tools" default-features = false @@ -169,31 +167,31 @@ default-features = false ## derive [workspace.dependencies.derive_tools] -version = "~0.45.0" +version = "~0.47.0" path = "module/core/derive_tools" default-features = false # features = [ "enabled" ] [workspace.dependencies.derive_tools_meta] -version = "~0.44.0" +version = "~0.46.0" path = "module/core/derive_tools_meta" default-features = false # features = [ "enabled" ] [workspace.dependencies.reflect_tools] -version = "~0.6.0" +version = "~0.7.0" path = "module/core/reflect_tools" default-features = false # features = [ "enabled" ] [workspace.dependencies.reflect_tools_meta] -version = "~0.6.0" +version = "~0.7.0" path = "module/core/reflect_tools_meta" default-features = false # features = [ "enabled" ] [workspace.dependencies.format_tools] -version = "~0.5.0" +version = "~0.6.0" path = "module/core/format_tools" default-features = false # features = [ "enabled" ] @@ -217,30 +215,30 @@ path = "module/alias/fundamental_data_type" default-features = false [workspace.dependencies.variadic_from] -version = "~0.39.0" +version = "~0.41.0" path = "module/core/variadic_from" default-features = false # features = [ "enabled" ] [workspace.dependencies.variadic_from_meta] -version = "~0.10.0" +version = "~0.12.0" path = "module/core/variadic_from_meta" default-features = false # features = [ "enabled" ] [workspace.dependencies.clone_dyn] -version = "~0.42.0" +version = "~0.44.0" path = "module/core/clone_dyn" default-features = false # features = [ "enabled" ] [workspace.dependencies.clone_dyn_meta] -version = "~0.39.0" +version = "~0.41.0" path = "module/core/clone_dyn_meta" # features = [ "enabled" ] [workspace.dependencies.clone_dyn_types] -version = "~0.37.0" +version = "~0.38.0" path = "module/core/clone_dyn_types" default-features = false # features = [ "enabled" ] @@ -265,7 +263,7 @@ default-features = false ## iter [workspace.dependencies.iter_tools] -version = "~0.36.0" +version = "~0.37.0" path = "module/core/iter_tools" default-features = false @@ -283,32 +281,32 @@ path = "module/core/for_each" default-features = false [workspace.dependencies.former] -version = "~2.27.0" +version = "~2.28.0" path = "module/core/former" default-features = false [workspace.dependencies.former_meta] -version = "~2.26.0" +version = "~2.27.0" path = "module/core/former_meta" default-features = false [workspace.dependencies.former_types] -version = "~2.23.0" +version = "~2.24.0" path = "module/core/former_types" default-features = false [workspace.dependencies.component_model] -version = "~0.5.0" +version = "~0.6.0" path = "module/core/component_model" default-features = false [workspace.dependencies.component_model_meta] -version = "~0.5.0" +version = "~0.6.0" path = "module/core/component_model_meta" default-features = false [workspace.dependencies.component_model_types] -version = "~0.9.0" +version = "~0.11.0" path = "module/core/component_model_types" default-features = false @@ -322,12 +320,12 @@ version = "~0.13.0" path = "module/core/impls_index_meta" [workspace.dependencies.mod_interface] -version = "~0.43.0" +version = "~0.44.0" path = "module/core/mod_interface" default-features = false [workspace.dependencies.mod_interface_meta] -version = "~0.41.0" +version = "~0.42.0" path = "module/core/mod_interface_meta" default-features = false @@ -353,7 +351,7 @@ default-features = false ## macro tools [workspace.dependencies.macro_tools] -version = "~0.65.0" +version = "~0.67.0" path = "module/core/macro_tools" default-features = false @@ -412,7 +410,7 @@ default-features = false ## error [workspace.dependencies.error_tools] -version = "~0.31.0" +version = "~0.32.0" path = "module/core/error_tools" default-features = false @@ -424,12 +422,12 @@ path = "module/alias/werror" ## string tools [workspace.dependencies.strs_tools] -version = "~0.28.0" +version = "~0.29.0" path = "module/core/strs_tools" default-features = false [workspace.dependencies.strs_tools_meta] -version = "~0.5.0" +version = "~0.6.0" path = "module/core/strs_tools_meta" default-features = false @@ -451,7 +449,7 @@ path = "module/alias/file_tools" default-features = false [workspace.dependencies.pth] -version = "~0.24.0" +version = "~0.25.0" path = "module/core/pth" default-features = false @@ -464,7 +462,7 @@ default-features = false ## process tools [workspace.dependencies.process_tools] -version = "~0.14.0" +version = "~0.15.0" path = "module/core/process_tools" default-features = false @@ -483,7 +481,6 @@ path = "module/alias/wtest" [workspace.dependencies.test_tools] version = "~0.16.0" path = "module/core/test_tools" -features = [ "full" ] # [workspace.dependencies.test_tools_stable] # package = "test_tools" @@ -525,7 +522,7 @@ default-features = false ## ca [workspace.dependencies.wca] -version = "~0.27.0" +version = "~0.28.0" path = "module/move/wca" ## censor @@ -538,7 +535,7 @@ path = "module/move/wcensor" ## willbe [workspace.dependencies.willbe] -version = "~0.23.0" +version = "~0.24.0" path = "module/move/willbe" @@ -577,7 +574,7 @@ version = "~0.6.0" path = "module/move/deterministic_rand" [workspace.dependencies.crates_tools] -version = "~0.16.0" +version = "~0.17.0" path = "module/move/crates_tools" [workspace.dependencies.assistant] @@ -589,7 +586,7 @@ version = "~0.2.0" path = "module/move/llm_tools" [workspace.dependencies.benchkit] -version = "~0.4.0" +version = "~0.5.0" path = "module/move/benchkit" ## steps @@ -634,7 +631,6 @@ version = "0.1.83" [workspace.dependencies.tokio] version = "1.41.0" -features = [] default-features = false # Note: anyhow and thiserror are included here ONLY for bootstrap builds @@ -673,6 +669,18 @@ version = "~0.2" [workspace.dependencies.rand] version = "0.8.5" +[workspace.dependencies.rand_chacha] +version = "0.3.1" + +[workspace.dependencies.rand_seeder] +version = "0.3.0" + +[workspace.dependencies.sealed] +version = "0.5.0" + +[workspace.dependencies.rayon] +version = "1.8.0" + [workspace.dependencies.trybuild] version = "1.0.85" @@ -754,15 +762,12 @@ version = "0.18.1" [workspace.dependencies.toml] version = "0.8.23" -features = [ "preserve_order" ] [workspace.dependencies.chrono] version = "0.4.34" -features = [ "serde" ] [workspace.dependencies.criterion] version = "0.5.1" -features = [ "html_reports" ] [workspace.dependencies.workspace_tools] version = "~0.2.0" diff --git a/Makefile b/Makefile index 450777146f..288a61783a 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,8 @@ PKG_FLAGS = $(if $(crate),-p $(crate)) wtest2 \ wtest3 \ wtest4 \ - wtest5 + wtest5 \ + clean-cache-files # # === Help === @@ -61,6 +62,9 @@ help: @echo " wtest4 [crate=..] - Watch Level 4: All checks + Heavy testing (deps + audit)." @echo " wtest5 [crate=..] - Watch Level 5: Full heavy testing with mutations." @echo "" + @echo "Cache Management:" + @echo " clean-cache-files - Add hyphen prefix to cache files for git exclusion." + @echo "" # @@ -163,7 +167,8 @@ ctest4: RUSTDOCFLAGS="-D warnings" cargo test --doc --all-features $(PKG_FLAGS) && \ cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && \ cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && \ - cargo +nightly audit --all-features $(PKG_FLAGS) + cargo +nightly audit --all-features $(PKG_FLAGS) && \ + $(MAKE) --no-print-directory clean-cache-files # Test Level 5: Full heavy testing with mutation tests. # @@ -177,7 +182,8 @@ ctest5: cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && \ willbe .test dry:0 && \ cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && \ - cargo +nightly audit --all-features $(PKG_FLAGS) + cargo +nightly audit --all-features $(PKG_FLAGS) && \ + $(MAKE) --no-print-directory clean-cache-files # # === Watch Commands === @@ -213,7 +219,7 @@ wtest3: # make wtest4 [crate=name] wtest4: @echo "Watching Level 4: All checks + Heavy testing..." - @cargo watch -c --shell "RUSTFLAGS=\"-D warnings\" cargo nextest run --all-features $(PKG_FLAGS) && RUSTDOCFLAGS=\"-D warnings\" cargo test --doc --all-features $(PKG_FLAGS) && cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && cargo +nightly audit --all-features $(PKG_FLAGS)" + @cargo watch -c --shell "RUSTFLAGS=\"-D warnings\" cargo nextest run --all-features $(PKG_FLAGS) && RUSTDOCFLAGS=\"-D warnings\" cargo test --doc --all-features $(PKG_FLAGS) && cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && cargo +nightly audit --all-features $(PKG_FLAGS) && make --no-print-directory clean-cache-files" # Watch Level 5: Full heavy testing with mutations. # @@ -221,4 +227,22 @@ wtest4: # make wtest5 [crate=name] wtest5: @echo "Watching Level 5: Full heavy testing..." - @cargo watch -c --shell "RUSTFLAGS=\"-D warnings\" cargo nextest run --all-features $(PKG_FLAGS) && RUSTDOCFLAGS=\"-D warnings\" cargo test --doc --all-features $(PKG_FLAGS) && cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && willbe .test dry:0 && cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && cargo +nightly audit --all-features $(PKG_FLAGS)" + @cargo watch -c --shell "RUSTFLAGS=\"-D warnings\" cargo nextest run --all-features $(PKG_FLAGS) && RUSTDOCFLAGS=\"-D warnings\" cargo test --doc --all-features $(PKG_FLAGS) && cargo clippy --all-targets --all-features $(PKG_FLAGS) -- -D warnings && willbe .test dry:0 && cargo +nightly udeps --all-targets --all-features $(PKG_FLAGS) && cargo +nightly audit --all-features $(PKG_FLAGS) && make --no-print-directory clean-cache-files" + +# +# === Cache Cleanup === +# + +# Clean cache files created by cargo audit and other tools by adding hyphen prefix. +# This ensures they are ignored by git while preserving the data for future runs. +# +# Usage : +# make clean-cache-files +clean-cache-files: + @echo "Cleaning cache files (adding hyphen prefix for git exclusion)..." + @if [ -d "advisory-db" ]; then mv advisory-db -advisory-db 2>/dev/null || true; fi + @if [ -f "advisory-db..lock" ]; then mv advisory-db..lock -advisory-db..lock 2>/dev/null || true; fi + @if [ -d ".global-cache" ]; then mv .global-cache -.global-cache 2>/dev/null || true; fi + @if [ -d ".package-cache" ]; then mv .package-cache -.package-cache 2>/dev/null || true; fi + @if [ -d "registry" ]; then mv registry -registry 2>/dev/null || true; fi + @echo "Cache files cleaned successfully." diff --git a/module/alias/cargo_will/Cargo.toml b/module/alias/cargo_will/Cargo.toml index 9ea7f1b0ea..8d069f6530 100644 --- a/module/alias/cargo_will/Cargo.toml +++ b/module/alias/cargo_will/Cargo.toml @@ -36,7 +36,7 @@ willbe = { workspace = true } error_tools = { workspace = true } # [dev-dependencies] -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } # assert_fs = "1.0" # serde_yaml = "0.9" # serde_json = "1.0.114" diff --git a/module/alias/file_tools/Cargo.toml b/module/alias/file_tools/Cargo.toml index abd8c2fba4..29272039a6 100644 --- a/module/alias/file_tools/Cargo.toml +++ b/module/alias/file_tools/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/fundamental_data_type/Cargo.toml b/module/alias/fundamental_data_type/Cargo.toml index fa1e4da110..8128c20dfd 100644 --- a/module/alias/fundamental_data_type/Cargo.toml +++ b/module/alias/fundamental_data_type/Cargo.toml @@ -41,4 +41,4 @@ enabled = [] derive_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/instance_of/Cargo.toml b/module/alias/instance_of/Cargo.toml index eeee06d16f..7c62c42dae 100644 --- a/module/alias/instance_of/Cargo.toml +++ b/module/alias/instance_of/Cargo.toml @@ -59,4 +59,4 @@ implements = { workspace = true } [dev-dependencies] # trybuild = { version = "~1.0", features = [ "diff" ] } -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/multilayer/Cargo.toml b/module/alias/multilayer/Cargo.toml index 083b81b676..9b9f8b174d 100644 --- a/module/alias/multilayer/Cargo.toml +++ b/module/alias/multilayer/Cargo.toml @@ -58,4 +58,4 @@ path = "tests/smoke_test.rs" mod_interface = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/proc_macro_tools/Cargo.toml b/module/alias/proc_macro_tools/Cargo.toml index 9673d391a7..13ec4c22d7 100644 --- a/module/alias/proc_macro_tools/Cargo.toml +++ b/module/alias/proc_macro_tools/Cargo.toml @@ -37,5 +37,5 @@ enabled = ["macro_tools/enabled"] macro_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/proper_tools/Cargo.toml b/module/alias/proper_tools/Cargo.toml index 7e94a61f43..7e4383ba8d 100644 --- a/module/alias/proper_tools/Cargo.toml +++ b/module/alias/proper_tools/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/unilang_instruction_parser/Cargo.toml b/module/alias/unilang_instruction_parser/Cargo.toml index af57858a3b..efd1cb9a4f 100644 --- a/module/alias/unilang_instruction_parser/Cargo.toml +++ b/module/alias/unilang_instruction_parser/Cargo.toml @@ -18,7 +18,7 @@ homepage = "https://github.com/Wandalen/wTools/tree/master/module/alias/unilang_ unilang_parser = { path = "../../move/unilang_parser" } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } strs_tools = { workspace = true, features = ["string_parse_request"] } error_tools = { workspace = true, features = [ "enabled", "error_typed" ] } iter_tools = { workspace = true, features = [ "enabled" ] } diff --git a/module/alias/werror/Cargo.toml b/module/alias/werror/Cargo.toml index b60046662b..ecf21598b0 100644 --- a/module/alias/werror/Cargo.toml +++ b/module/alias/werror/Cargo.toml @@ -52,4 +52,4 @@ error_untyped = [ error_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/willbe2/Cargo.toml b/module/alias/willbe2/Cargo.toml index c8d5bba0e9..2685775066 100644 --- a/module/alias/willbe2/Cargo.toml +++ b/module/alias/willbe2/Cargo.toml @@ -36,4 +36,4 @@ no_std = [] # willbe = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/winterval/Cargo.toml b/module/alias/winterval/Cargo.toml index 3f85c3756e..1d0b06e3c5 100644 --- a/module/alias/winterval/Cargo.toml +++ b/module/alias/winterval/Cargo.toml @@ -37,4 +37,4 @@ use_alloc = [ "no_std" ] interval_adapter = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/wproc_macro/Cargo.toml b/module/alias/wproc_macro/Cargo.toml index 306d4b7a9d..b92a404d70 100644 --- a/module/alias/wproc_macro/Cargo.toml +++ b/module/alias/wproc_macro/Cargo.toml @@ -34,4 +34,4 @@ macro_tools = { workspace = true } [dev-dependencies] # trybuild = { version = "~1.0", features = [ "diff" ] } -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/wstring_tools/Cargo.toml b/module/alias/wstring_tools/Cargo.toml index cfc9591e22..a263cd7737 100644 --- a/module/alias/wstring_tools/Cargo.toml +++ b/module/alias/wstring_tools/Cargo.toml @@ -79,4 +79,4 @@ split = [ "strs_tools/string_split" ] strs_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/alias/wtest/Cargo.toml b/module/alias/wtest/Cargo.toml index 94e49b4136..4fad08acbe 100644 --- a/module/alias/wtest/Cargo.toml +++ b/module/alias/wtest/Cargo.toml @@ -39,7 +39,7 @@ use_alloc = [ "no_std" ] enabled = [] [dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # wtools = { workspace = true } # wca = { workspace = true } # wpublisher = { workspace = true } diff --git a/module/alias/wtest_basic/Cargo.toml b/module/alias/wtest_basic/Cargo.toml index 207ee74eee..c7c3c1b478 100644 --- a/module/alias/wtest_basic/Cargo.toml +++ b/module/alias/wtest_basic/Cargo.toml @@ -85,4 +85,4 @@ impls_index = { workspace = true } # # diagnostics_tools = { workspace = true, features = [ "full" ] } # Already added above [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/brain_tools/Cargo.toml b/module/blank/brain_tools/Cargo.toml index eaf6e008c5..508f069791 100644 --- a/module/blank/brain_tools/Cargo.toml +++ b/module/blank/brain_tools/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/draw_lang/Cargo.toml b/module/blank/draw_lang/Cargo.toml index 912fe5bd9e..dd163f3c38 100644 --- a/module/blank/draw_lang/Cargo.toml +++ b/module/blank/draw_lang/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/drawboard/Cargo.toml b/module/blank/drawboard/Cargo.toml index c46e9bfc0f..f174efd5e7 100644 --- a/module/blank/drawboard/Cargo.toml +++ b/module/blank/drawboard/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/drawql/Cargo.toml b/module/blank/drawql/Cargo.toml index ead5c7b736..2218c97368 100644 --- a/module/blank/drawql/Cargo.toml +++ b/module/blank/drawql/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/exe_tools/Cargo.toml b/module/blank/exe_tools/Cargo.toml index 566f256fcc..a55a1d6a54 100644 --- a/module/blank/exe_tools/Cargo.toml +++ b/module/blank/exe_tools/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/graphtools/Cargo.toml b/module/blank/graphtools/Cargo.toml index e974c76b60..354b71504a 100644 --- a/module/blank/graphtools/Cargo.toml +++ b/module/blank/graphtools/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/image_tools/Cargo.toml b/module/blank/image_tools/Cargo.toml index 48f83262d4..bd96e3ffaa 100644 --- a/module/blank/image_tools/Cargo.toml +++ b/module/blank/image_tools/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/math_tools/Cargo.toml b/module/blank/math_tools/Cargo.toml index 7eef235810..153a6a0ee3 100644 --- a/module/blank/math_tools/Cargo.toml +++ b/module/blank/math_tools/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/mindx12/Cargo.toml b/module/blank/mindx12/Cargo.toml index dc9db55d2e..6114bd0d48 100644 --- a/module/blank/mindx12/Cargo.toml +++ b/module/blank/mindx12/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/mingl/Cargo.toml b/module/blank/mingl/Cargo.toml index b72959a49d..8c1857cac5 100644 --- a/module/blank/mingl/Cargo.toml +++ b/module/blank/mingl/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minmetal/Cargo.toml b/module/blank/minmetal/Cargo.toml index 5cba3295c1..31fe35b925 100644 --- a/module/blank/minmetal/Cargo.toml +++ b/module/blank/minmetal/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minopengl/Cargo.toml b/module/blank/minopengl/Cargo.toml index c7584ac3a5..07c15d059d 100644 --- a/module/blank/minopengl/Cargo.toml +++ b/module/blank/minopengl/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minvulkan/Cargo.toml b/module/blank/minvulkan/Cargo.toml index 431ecb11a7..438b8ad70e 100644 --- a/module/blank/minvulkan/Cargo.toml +++ b/module/blank/minvulkan/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minwebgl/Cargo.toml b/module/blank/minwebgl/Cargo.toml index fbb66e7d4f..1159cac750 100644 --- a/module/blank/minwebgl/Cargo.toml +++ b/module/blank/minwebgl/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minwebgpu/Cargo.toml b/module/blank/minwebgpu/Cargo.toml index aba3622d00..8ee2e6fc57 100644 --- a/module/blank/minwebgpu/Cargo.toml +++ b/module/blank/minwebgpu/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/minwgpu/Cargo.toml b/module/blank/minwgpu/Cargo.toml index b2dbefc7e6..88682011a2 100644 --- a/module/blank/minwgpu/Cargo.toml +++ b/module/blank/minwgpu/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/paths_tools/Cargo.toml b/module/blank/paths_tools/Cargo.toml index c1fceb3b4d..9a7129dad5 100644 --- a/module/blank/paths_tools/Cargo.toml +++ b/module/blank/paths_tools/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/proper_path_tools/Cargo.toml b/module/blank/proper_path_tools/Cargo.toml index 36f5fa53ad..4025d5a4d4 100644 --- a/module/blank/proper_path_tools/Cargo.toml +++ b/module/blank/proper_path_tools/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/rustql/Cargo.toml b/module/blank/rustql/Cargo.toml index 1c81fbf0b0..e55c072d88 100644 --- a/module/blank/rustql/Cargo.toml +++ b/module/blank/rustql/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/second_brain/Cargo.toml b/module/blank/second_brain/Cargo.toml index 861d480b6a..77988d14cd 100644 --- a/module/blank/second_brain/Cargo.toml +++ b/module/blank/second_brain/Cargo.toml @@ -31,4 +31,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/w4d/Cargo.toml b/module/blank/w4d/Cargo.toml index be85a8ac55..d05b231e69 100644 --- a/module/blank/w4d/Cargo.toml +++ b/module/blank/w4d/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/blank/wlang/Cargo.toml b/module/blank/wlang/Cargo.toml index 3c37be1d41..901c5d4e23 100644 --- a/module/blank/wlang/Cargo.toml +++ b/module/blank/wlang/Cargo.toml @@ -40,4 +40,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/async_from/Cargo.toml b/module/core/async_from/Cargo.toml index 2339db43b5..d6303f4324 100644 --- a/module/core/async_from/Cargo.toml +++ b/module/core/async_from/Cargo.toml @@ -34,5 +34,5 @@ async_try_from = [] async-trait = { workspace = true } [dev-dependencies] -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } tokio = { workspace = true, features = [ "rt-multi-thread", "time", "macros" ] } diff --git a/module/core/async_tools/Cargo.toml b/module/core/async_tools/Cargo.toml index 21b394fff9..819e693f38 100644 --- a/module/core/async_tools/Cargo.toml +++ b/module/core/async_tools/Cargo.toml @@ -35,5 +35,5 @@ async-trait = { workspace = true } async_from = { workspace = true } [dev-dependencies] -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } tokio = { workspace = true, default-features = false, features = [ "rt-multi-thread", "time", "macros" ] } diff --git a/module/core/clone_dyn/Cargo.toml b/module/core/clone_dyn/Cargo.toml index f7269eddd7..41657b8501 100644 --- a/module/core/clone_dyn/Cargo.toml +++ b/module/core/clone_dyn/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clone_dyn" -version = "0.42.0" +version = "0.44.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -39,5 +39,5 @@ clone_dyn_types = { workspace = true, optional = true } # clone_dyn_types = { version = "0.27.0", optional = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } inspect_type = { workspace = true, features = [ "full" ] } diff --git a/module/core/clone_dyn_meta/Cargo.toml b/module/core/clone_dyn_meta/Cargo.toml index 8a581e43ca..81e03782d8 100644 --- a/module/core/clone_dyn_meta/Cargo.toml +++ b/module/core/clone_dyn_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clone_dyn_meta" -version = "0.39.0" +version = "0.41.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -38,4 +38,4 @@ macro_tools = { workspace = true, features = [ "attr", "attr_prop", "ct", "diag" component_model_types = { workspace = true, features = [ "types_component_assign" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/clone_dyn_types/Cargo.toml b/module/core/clone_dyn_types/Cargo.toml index 7e7245da5a..fd195b4929 100644 --- a/module/core/clone_dyn_types/Cargo.toml +++ b/module/core/clone_dyn_types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clone_dyn_types" -version = "0.37.0" +version = "0.38.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -32,5 +32,5 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # inspect_type = { workspace = true, features = [ "full" ] } diff --git a/module/core/collection_tools/Cargo.toml b/module/core/collection_tools/Cargo.toml index cc92acb294..bda10cdd47 100644 --- a/module/core/collection_tools/Cargo.toml +++ b/module/core/collection_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "collection_tools" -version = "0.23.0" +version = "0.25.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -59,5 +59,5 @@ collection_into_constructors = [] hashbrown = { workspace = true, optional = true, default-features = false, features = [ "default" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # former = { workspace = true } diff --git a/module/core/collection_tools/src/lib.rs b/module/core/collection_tools/src/lib.rs index 1631152a12..eec4f06258 100644 --- a/module/core/collection_tools/src/lib.rs +++ b/module/core/collection_tools/src/lib.rs @@ -46,6 +46,7 @@ pub mod own { #[ doc( inline ) ] #[ allow( clippy::useless_attribute, clippy::pub_use ) ] + #[cfg(any(feature = "use_alloc", not(feature = "no_std")))] pub use super::collection::own::*; } @@ -61,6 +62,7 @@ pub mod orphan { #[ doc( inline ) ] #[ allow( clippy::useless_attribute, clippy::pub_use ) ] + #[cfg(any(feature = "use_alloc", not(feature = "no_std")))] pub use collection::orphan::*; } @@ -73,10 +75,12 @@ pub mod exposed { #[ doc( inline ) ] #[ allow( clippy::useless_attribute, clippy::pub_use ) ] + #[cfg(any(feature = "use_alloc", not(feature = "no_std")))] pub use prelude::*; #[ doc( inline ) ] #[ allow( clippy::useless_attribute, clippy::pub_use ) ] + #[cfg(any(feature = "use_alloc", not(feature = "no_std")))] pub use collection::exposed::*; } @@ -92,6 +96,13 @@ pub mod prelude { pub use collection::prelude::*; } +/// Empty prelude for no_std configurations +#[ cfg( feature = "enabled" ) ] +#[cfg(all(feature = "no_std", not(feature = "use_alloc")))] +#[ allow( unused_imports ) ] +pub mod prelude { +} + // pub use own::collection as xxx; // pub use hmap as xxx; // pub use own::HashMap as xxx; diff --git a/module/core/collection_tools/tests/inc/llist.rs b/module/core/collection_tools/tests/inc/llist.rs index 9cae2b6afb..7a588f01c0 100644 --- a/module/core/collection_tools/tests/inc/llist.rs +++ b/module/core/collection_tools/tests/inc/llist.rs @@ -49,6 +49,7 @@ fn into_constructor() { #[ test ] fn iters() { struct MyContainer { + #[allow(clippy::linkedlist)] entries: the_module::LinkedList, } diff --git a/module/core/collection_tools/tests/inc/vec.rs b/module/core/collection_tools/tests/inc/vec.rs index fe588da615..1c1321c7e0 100644 --- a/module/core/collection_tools/tests/inc/vec.rs +++ b/module/core/collection_tools/tests/inc/vec.rs @@ -3,18 +3,14 @@ use super::*; #[ test ] #[cfg(any(feature = "use_alloc", not(feature = "no_std")))] fn reexport() { - let mut vec1: the_module::Vec< i32 > = the_module::Vec::new(); - vec1.push(1); - vec1.push(2); + let vec1: the_module::Vec< i32 > = the_module::vec![ 1, 2 ]; let got = *vec1.first().unwrap(); assert_eq!(got, 1); let got = *vec1.last().unwrap(); assert_eq!(got, 2); use std::vec::Vec as DynList; - let mut vec2: DynList = DynList::new(); - vec2.push(1); - vec2.push(2); + let vec2: DynList = DynList::from([ 1, 2 ]); let got = *vec2.first().unwrap(); assert_eq!(got, 1); let got = *vec2.last().unwrap(); @@ -33,9 +29,7 @@ fn constructor() { // test.case( "multiple entry" ); let got = the_module::vec! { 3, 13 }; - let mut exp = the_module::Vec::new(); - exp.push(3); - exp.push(13); + let exp = the_module::vec![ 3, 13 ]; assert_eq!(got, exp); let _got = the_module::vec!("b"); @@ -53,9 +47,7 @@ fn into_constructor() { // test.case( "multiple entry" ); let got: the_module::Vec< i32 > = the_module::into_vec! { 3, 13 }; - let mut exp = the_module::Vec::new(); - exp.push(3); - exp.push(13); + let exp = the_module::vec![ 3, 13 ]; assert_eq!(got, exp); let _got: Vec< &str > = the_module::into_vec!("b"); diff --git a/module/core/component_model/Cargo.toml b/module/core/component_model/Cargo.toml index 4b926f0ae2..d0189ddcfe 100644 --- a/module/core/component_model/Cargo.toml +++ b/module/core/component_model/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "component_model" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -58,5 +58,5 @@ component_model_types = { workspace = true, optional = true } # collection_tools = { workspace = true, features = [ "collection_constructors" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } collection_tools = { workspace = true, features = [ "collection_constructors" ] } diff --git a/module/core/component_model_meta/Cargo.toml b/module/core/component_model_meta/Cargo.toml index 2572028557..33cc4c7188 100644 --- a/module/core/component_model_meta/Cargo.toml +++ b/module/core/component_model_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "component_model_meta" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -53,4 +53,4 @@ component_model_types = { workspace = true, features = [ "types_component_assign convert_case = { version = "0.6.0", default-features = false, optional = true, features = [] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/component_model_types/Cargo.toml b/module/core/component_model_types/Cargo.toml index 19f5b52cf6..10d71b3078 100644 --- a/module/core/component_model_types/Cargo.toml +++ b/module/core/component_model_types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "component_model_types" -version = "0.9.0" +version = "0.11.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -47,4 +47,4 @@ collection_tools = { workspace = true, features = [ "collection_constructors" ] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/data_type/Cargo.toml b/module/core/data_type/Cargo.toml index 6a9bdf7678..9e565be37b 100644 --- a/module/core/data_type/Cargo.toml +++ b/module/core/data_type/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "data_type" -version = "0.14.0" +version = "0.15.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -68,4 +68,4 @@ interval_adapter = { workspace = true } collection_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/derive_tools/Cargo.toml b/module/core/derive_tools/Cargo.toml index 04e821655a..8975fef6de 100644 --- a/module/core/derive_tools/Cargo.toml +++ b/module/core/derive_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "derive_tools" -version = "0.45.0" +version = "0.47.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -210,7 +210,7 @@ clone_dyn = { workspace = true, optional = true, features = [ "clone_dyn_types", derive_tools_meta = { workspace = true, features = ["enabled"] } macro_tools = { workspace = true, features = ["enabled", "diag", "attr"] } -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } [build-dependencies] cfg_aliases = "0.1.1" diff --git a/module/core/derive_tools_meta/Cargo.toml b/module/core/derive_tools_meta/Cargo.toml index 45eb4b38d9..bcf77f35b2 100644 --- a/module/core/derive_tools_meta/Cargo.toml +++ b/module/core/derive_tools_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "derive_tools_meta" -version = "0.44.0" +version = "0.46.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -81,4 +81,4 @@ iter_tools = { workspace = true, features = [ "iter_trait" ] } component_model_types = { workspace = true, features = [ "types_component_assign" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/diagnostics_tools/Cargo.toml b/module/core/diagnostics_tools/Cargo.toml index d606fdabc5..8aad799ec9 100644 --- a/module/core/diagnostics_tools/Cargo.toml +++ b/module/core/diagnostics_tools/Cargo.toml @@ -52,7 +52,7 @@ pretty_assertions = { workspace = true, optional = true } [dev-dependencies] trybuild = "1.0.106" -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } strip-ansi-escapes = "0.1.1" serde_json = "1.0" diff --git a/module/core/error_tools/Cargo.toml b/module/core/error_tools/Cargo.toml index 1fdd826df6..5bc1b5a581 100644 --- a/module/core/error_tools/Cargo.toml +++ b/module/core/error_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "error_tools" -version = "0.31.0" +version = "0.32.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -52,5 +52,5 @@ anyhow = { workspace = true, optional = true } thiserror = { workspace = true, optional = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # xxx : qqq : review \ No newline at end of file diff --git a/module/core/for_each/Cargo.toml b/module/core/for_each/Cargo.toml index 1c937333d7..25944ed362 100644 --- a/module/core/for_each/Cargo.toml +++ b/module/core/for_each/Cargo.toml @@ -62,4 +62,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/format_tools/Cargo.toml b/module/core/format_tools/Cargo.toml index 11eb8cd96a..1c554588c6 100644 --- a/module/core/format_tools/Cargo.toml +++ b/module/core/format_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "format_tools" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -45,7 +45,7 @@ former = { workspace = true, features = [ "derive_former" ] } collection_tools = { workspace = true, features = [] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } collection_tools = { workspace = true, features = [ "collection_constructors" ] } # [build-dependencies] diff --git a/module/core/format_tools/src/format/to_string/aref.rs b/module/core/format_tools/src/format/to_string/aref.rs index fa1332734d..6f346f6d18 100644 --- a/module/core/format_tools/src/format/to_string/aref.rs +++ b/module/core/format_tools/src/format/to_string/aref.rs @@ -7,6 +7,7 @@ use core::ops::{ Deref }; /// Reference wrapper to make into string conversion with fallback. #[ allow( missing_debug_implementations ) ] +#[ allow( dead_code ) ] #[ repr( transparent ) ] pub struct Ref< 'a, T, How > ( pub Ref2< 'a, T, How > ) diff --git a/module/core/format_tools/src/lib.rs b/module/core/format_tools/src/lib.rs index 3098a5277c..4674a43ba3 100644 --- a/module/core/format_tools/src/lib.rs +++ b/module/core/format_tools/src/lib.rs @@ -3,6 +3,56 @@ #![ doc( html_root_url = "https://docs.rs/reflect_tools/latest/reflect_tools/" ) ] #![ cfg_attr( doc, doc = include_str!( concat!( env!( "CARGO_MANIFEST_DIR" ), "/", "readme.md" ) ) ) ] #![ cfg_attr( not( doc ), doc = "Formatting utilities" ) ] +#![ allow( clippy::similar_names ) ] +#![ allow( clippy::double_parens ) ] +#![ allow( clippy::empty_line_after_doc_comments ) ] +#![ allow( clippy::redundant_else ) ] +#![ allow( clippy::single_match_else ) ] +#![ allow( clippy::needless_late_init ) ] +#![ allow( clippy::match_same_arms ) ] +#![ allow( clippy::implicit_clone ) ] +#![ allow( clippy::unnecessary_wraps ) ] +#![ allow( clippy::explicit_iter_loop ) ] +#![ allow( clippy::elidable_lifetime_names ) ] +#![ allow( clippy::needless_borrow ) ] +#![ allow( clippy::std_instead_of_core ) ] +#![ allow( clippy::doc_lazy_continuation ) ] +#![ allow( clippy::cast_possible_truncation ) ] +#![ allow( clippy::cast_sign_loss ) ] +#![ allow( clippy::must_use_candidate ) ] +#![ allow( clippy::unreadable_literal ) ] +#![ allow( clippy::type_complexity ) ] +#![ allow( clippy::default_trait_access ) ] +#![ allow( clippy::missing_errors_doc ) ] +#![ allow( clippy::manual_string_new ) ] +#![ allow( clippy::explicit_counter_loop ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::manual_map ) ] +#![ allow( clippy::doc_markdown ) ] +#![ allow( clippy::extra_unused_lifetimes ) ] +#![ allow( clippy::unnecessary_cast ) ] +#![ allow( clippy::redundant_closure ) ] +#![ allow( clippy::needless_borrows_for_generic_args ) ] +#![ allow( clippy::derivable_impls ) ] +#![ allow( clippy::write_with_newline ) ] +#![ allow( clippy::bool_to_int_with_if ) ] +#![ allow( clippy::redundant_static_lifetimes ) ] +#![ allow( clippy::inconsistent_struct_constructor ) ] +#![ allow( clippy::len_zero ) ] +#![ allow( clippy::needless_as_bytes ) ] +#![ allow( clippy::struct_field_names ) ] +#![ allow( clippy::unnecessary_semicolon ) ] +#![ allow( clippy::match_bool ) ] +#![ allow( clippy::implicit_hasher ) ] +#![ allow( clippy::map_identity ) ] +#![ allow( clippy::manual_repeat_n ) ] +#![ allow( clippy::too_many_lines ) ] +#![ allow( clippy::needless_pass_by_value ) ] +#![ allow( clippy::collapsible_else_if ) ] +#![ allow( clippy::needless_return ) ] +#![ allow( clippy::needless_raw_string_hashes ) ] +#![ allow( clippy::ref_option ) ] +#![ allow( clippy::owned_cow ) ] #[ cfg( feature = "enabled" ) ] pub mod format; diff --git a/module/core/format_tools/tests/tests.rs b/module/core/format_tools/tests/tests.rs index c8e636300b..a6fc6792b0 100644 --- a/module/core/format_tools/tests/tests.rs +++ b/module/core/format_tools/tests/tests.rs @@ -2,6 +2,19 @@ // #![ feature( trace_macros ) ] #![ allow( unused_imports ) ] +#![ allow( clippy::unreadable_literal ) ] +#![ allow( clippy::needless_raw_string_hashes ) ] +#![ allow( clippy::default_trait_access ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::ref_option ) ] +#![ allow( clippy::useless_conversion ) ] +#![ allow( clippy::owned_cow ) ] +#![ allow( clippy::type_complexity ) ] +#![ allow( clippy::elidable_lifetime_names ) ] +#![ allow( clippy::redundant_closure ) ] +#![ allow( clippy::println_empty_string ) ] +#![ allow( clippy::field_reassign_with_default ) ] +#![ allow( clippy::never_loop ) ] use format_tools as the_module; use test_tools::exposed::*; diff --git a/module/core/former/Cargo.toml b/module/core/former/Cargo.toml index d3e33e0c44..d43ff0fe37 100644 --- a/module/core/former/Cargo.toml +++ b/module/core/former/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "former" -version = "2.27.0" +version = "2.28.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -71,5 +71,5 @@ former_types = { workspace = true } # collection_tools = { workspace = true, features = [ "collection_constructors" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } collection_tools = { workspace = true, features = [ "collection_constructors" ] } diff --git a/module/core/former/task/fix_collection_former_btree_map.md b/module/core/former/task/002_fix_collection_former_btree_map.md similarity index 100% rename from module/core/former/task/fix_collection_former_btree_map.md rename to module/core/former/task/002_fix_collection_former_btree_map.md diff --git a/module/core/former/task/fix_collection_former_hashmap.md b/module/core/former/task/003_fix_collection_former_hashmap.md similarity index 100% rename from module/core/former/task/fix_collection_former_hashmap.md rename to module/core/former/task/003_fix_collection_former_hashmap.md diff --git a/module/core/former/task/fix_former_begin_trait_bounds_for_type_only_structs.md b/module/core/former/task/completed/004_fix_former_begin_trait_bounds_for_type_only_structs.md similarity index 100% rename from module/core/former/task/fix_former_begin_trait_bounds_for_type_only_structs.md rename to module/core/former/task/completed/004_fix_former_begin_trait_bounds_for_type_only_structs.md diff --git a/module/core/former/task/fix_k_type_parameter_not_found.md b/module/core/former/task/completed/005_fix_k_type_parameter_not_found.md similarity index 100% rename from module/core/former/task/fix_k_type_parameter_not_found.md rename to module/core/former/task/completed/005_fix_k_type_parameter_not_found.md diff --git a/module/core/former/task/fix_lifetime_only_structs.md b/module/core/former/task/completed/006_fix_lifetime_only_structs.md similarity index 100% rename from module/core/former/task/fix_lifetime_only_structs.md rename to module/core/former/task/completed/006_fix_lifetime_only_structs.md diff --git a/module/core/former/task/fix_lifetime_only_structs_missing_lifetime_specifier.md b/module/core/former/task/completed/007_fix_lifetime_only_structs_missing_lifetime_specifier.md similarity index 100% rename from module/core/former/task/fix_lifetime_only_structs_missing_lifetime_specifier.md rename to module/core/former/task/completed/007_fix_lifetime_only_structs_missing_lifetime_specifier.md diff --git a/module/core/former/task/fix_lifetime_parsing_error.md b/module/core/former/task/completed/008_fix_lifetime_parsing_error.md similarity index 100% rename from module/core/former/task/fix_lifetime_parsing_error.md rename to module/core/former/task/completed/008_fix_lifetime_parsing_error.md diff --git a/module/core/former/task/fix_lifetime_structs_implementation.md b/module/core/former/task/completed/009_fix_lifetime_structs_implementation.md similarity index 100% rename from module/core/former/task/fix_lifetime_structs_implementation.md rename to module/core/former/task/completed/009_fix_lifetime_structs_implementation.md diff --git a/module/core/former/task/fix_manual_tests_formerbegin_lifetime.md b/module/core/former/task/completed/010_fix_manual_tests_formerbegin_lifetime.md similarity index 100% rename from module/core/former/task/fix_manual_tests_formerbegin_lifetime.md rename to module/core/former/task/completed/010_fix_manual_tests_formerbegin_lifetime.md diff --git a/module/core/former/task/fix_name_collisions.md b/module/core/former/task/completed/011_fix_name_collisions.md similarity index 100% rename from module/core/former/task/fix_name_collisions.md rename to module/core/former/task/completed/011_fix_name_collisions.md diff --git a/module/core/former/task/fix_parametrized_field.md b/module/core/former/task/completed/012_fix_parametrized_field.md similarity index 100% rename from module/core/former/task/fix_parametrized_field.md rename to module/core/former/task/completed/012_fix_parametrized_field.md diff --git a/module/core/former/task/fix_parametrized_field_where.md b/module/core/former/task/completed/013_fix_parametrized_field_where.md similarity index 100% rename from module/core/former/task/fix_parametrized_field_where.md rename to module/core/former/task/completed/013_fix_parametrized_field_where.md diff --git a/module/core/former/task/fix_parametrized_struct_imm.md b/module/core/former/task/completed/014_fix_parametrized_struct_imm.md similarity index 100% rename from module/core/former/task/fix_parametrized_struct_imm.md rename to module/core/former/task/completed/014_fix_parametrized_struct_imm.md diff --git a/module/core/former/task/fix_parametrized_struct_where.md b/module/core/former/task/completed/015_fix_parametrized_struct_where.md similarity index 100% rename from module/core/former/task/fix_parametrized_struct_where.md rename to module/core/former/task/completed/015_fix_parametrized_struct_where.md diff --git a/module/core/former/task/fix_standalone_constructor_derive.md b/module/core/former/task/completed/016_fix_standalone_constructor_derive.md similarity index 100% rename from module/core/former/task/fix_standalone_constructor_derive.md rename to module/core/former/task/completed/016_fix_standalone_constructor_derive.md diff --git a/module/core/former/task/fix_subform_all_parametrized.md b/module/core/former/task/completed/017_fix_subform_all_parametrized.md similarity index 100% rename from module/core/former/task/fix_subform_all_parametrized.md rename to module/core/former/task/completed/017_fix_subform_all_parametrized.md diff --git a/module/core/former/task/fix_subform_collection_basic.md b/module/core/former/task/completed/018_fix_subform_collection_basic.md similarity index 100% rename from module/core/former/task/fix_subform_collection_basic.md rename to module/core/former/task/completed/018_fix_subform_collection_basic.md diff --git a/module/core/former/task/fix_subform_collection_manual_dependencies.md b/module/core/former/task/completed/019_fix_subform_collection_manual_dependencies.md similarity index 100% rename from module/core/former/task/fix_subform_collection_manual_dependencies.md rename to module/core/former/task/completed/019_fix_subform_collection_manual_dependencies.md diff --git a/module/core/former/task/fix_subform_collection_playground.md b/module/core/former/task/completed/020_fix_subform_collection_playground.md similarity index 100% rename from module/core/former/task/fix_subform_collection_playground.md rename to module/core/former/task/completed/020_fix_subform_collection_playground.md diff --git a/module/core/former/task/fix_subform_entry_hashmap_custom_dependencies.md b/module/core/former/task/completed/021_fix_subform_entry_hashmap_custom_dependencies.md similarity index 100% rename from module/core/former/task/fix_subform_entry_hashmap_custom_dependencies.md rename to module/core/former/task/completed/021_fix_subform_entry_hashmap_custom_dependencies.md diff --git a/module/core/former/task/fix_subform_entry_manual_lifetime_bounds.md b/module/core/former/task/completed/022_fix_subform_entry_manual_lifetime_bounds.md similarity index 100% rename from module/core/former/task/fix_subform_entry_manual_lifetime_bounds.md rename to module/core/former/task/completed/022_fix_subform_entry_manual_lifetime_bounds.md diff --git a/module/core/former/task/fix_subform_entry_named_manual_dependencies.md b/module/core/former/task/completed/023_fix_subform_entry_named_manual_dependencies.md similarity index 100% rename from module/core/former/task/fix_subform_entry_named_manual_dependencies.md rename to module/core/former/task/completed/023_fix_subform_entry_named_manual_dependencies.md diff --git a/module/core/former/task/fix_subform_scalar_manual_dependencies.md b/module/core/former/task/completed/024_fix_subform_scalar_manual_dependencies.md similarity index 100% rename from module/core/former/task/fix_subform_scalar_manual_dependencies.md rename to module/core/former/task/completed/024_fix_subform_scalar_manual_dependencies.md diff --git a/module/core/former/task/analyze_issue.md b/module/core/former/task/docs/analyze_issue.md similarity index 100% rename from module/core/former/task/analyze_issue.md rename to module/core/former/task/docs/analyze_issue.md diff --git a/module/core/former/task/blocked_tests_execution_plan.md b/module/core/former/task/docs/blocked_tests_execution_plan.md similarity index 100% rename from module/core/former/task/blocked_tests_execution_plan.md rename to module/core/former/task/docs/blocked_tests_execution_plan.md diff --git a/module/core/former/task/known_limitations.md b/module/core/former/task/docs/known_limitations.md similarity index 100% rename from module/core/former/task/known_limitations.md rename to module/core/former/task/docs/known_limitations.md diff --git a/module/core/former/task/lifetime_only_structs_final_progress.md b/module/core/former/task/docs/lifetime_only_structs_final_progress.md similarity index 100% rename from module/core/former/task/lifetime_only_structs_final_progress.md rename to module/core/former/task/docs/lifetime_only_structs_final_progress.md diff --git a/module/core/former/task/lifetime_only_structs_progress.md b/module/core/former/task/docs/lifetime_only_structs_progress.md similarity index 100% rename from module/core/former/task/lifetime_only_structs_progress.md rename to module/core/former/task/docs/lifetime_only_structs_progress.md diff --git a/module/core/former/task/lifetime_only_structs_summary.md b/module/core/former/task/docs/lifetime_only_structs_summary.md similarity index 100% rename from module/core/former/task/lifetime_only_structs_summary.md rename to module/core/former/task/docs/lifetime_only_structs_summary.md diff --git a/module/core/former/task/lifetime_struct_test_plan.md b/module/core/former/task/docs/lifetime_struct_test_plan.md similarity index 100% rename from module/core/former/task/lifetime_struct_test_plan.md rename to module/core/former/task/docs/lifetime_struct_test_plan.md diff --git a/module/core/former/task/manual_implementation_tests_summary.md b/module/core/former/task/docs/manual_implementation_tests_summary.md similarity index 100% rename from module/core/former/task/manual_implementation_tests_summary.md rename to module/core/former/task/docs/manual_implementation_tests_summary.md diff --git a/module/core/former/task/named.md b/module/core/former/task/docs/named.md similarity index 100% rename from module/core/former/task/named.md rename to module/core/former/task/docs/named.md diff --git a/module/core/former/task/task_plan.md b/module/core/former/task/docs/task_plan.md similarity index 100% rename from module/core/former/task/task_plan.md rename to module/core/former/task/docs/task_plan.md diff --git a/module/core/former/task/tasks.md b/module/core/former/task/docs/tasks.md similarity index 100% rename from module/core/former/task/tasks.md rename to module/core/former/task/docs/tasks.md diff --git a/module/core/former/task/readme.md b/module/core/former/task/readme.md new file mode 100644 index 0000000000..175f15a489 --- /dev/null +++ b/module/core/former/task/readme.md @@ -0,0 +1,67 @@ +# Task Management + +## Tasks Index + +| Priority | ID | Advisability | Value | Easiness | Effort (hours) | Phase | Status | Task | Description | +|---|---|---|---|---|---|---|---|---|---| +| 1 | 001 | 100 | 10 | 10 | 32 | Optimization | 🔄 (Planned) | [001_macro_optimization.md](001_macro_optimization.md) | Former Macro Optimization - 2-3x compile time improvement, 1.5-2x runtime improvement | +| 2 | 002 | 49 | 7 | 7 | 8 | Bug Fix | 🔄 (Planned) | [002_fix_collection_former_btree_map.md](002_fix_collection_former_btree_map.md) | Fix collection_former_btree_map test - complex collection type mismatch issues with subform | +| 3 | 003 | 49 | 7 | 7 | 8 | Bug Fix | ⛔️ (Blocked) | [003_fix_collection_former_hashmap.md](003_fix_collection_former_hashmap.md) | Fix collection_former_hashmap test - HashMap subform collection type mismatch issues | +| 4 | 004 | 36 | 6 | 6 | 6 | Bug Fix | ✅ (Completed) | [004_fix_former_begin_trait_bounds_for_type_only_structs.md](completed/004_fix_former_begin_trait_bounds_for_type_only_structs.md) | Fix FormerBegin trait bounds for type-only structs | +| 5 | 005 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [005_fix_k_type_parameter_not_found.md](completed/005_fix_k_type_parameter_not_found.md) | Fix K type parameter not found error | +| 6 | 006 | 64 | 8 | 8 | 12 | Bug Fix | ✅ (Completed) | [006_fix_lifetime_only_structs.md](completed/006_fix_lifetime_only_structs.md) | Fix lifetime-only structs support - Former derive fails with only lifetime parameters | +| 7 | 007 | 36 | 6 | 6 | 6 | Bug Fix | ✅ (Completed) | [007_fix_lifetime_only_structs_missing_lifetime_specifier.md](completed/007_fix_lifetime_only_structs_missing_lifetime_specifier.md) | Fix missing lifetime specifier in lifetime-only structs | +| 8 | 008 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [008_fix_lifetime_parsing_error.md](completed/008_fix_lifetime_parsing_error.md) | Fix lifetime parsing error in macro | +| 9 | 009 | 36 | 6 | 6 | 8 | Bug Fix | ✅ (Completed) | [009_fix_lifetime_structs_implementation.md](completed/009_fix_lifetime_structs_implementation.md) | Fix lifetime structs implementation issues | +| 10 | 010 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [010_fix_manual_tests_formerbegin_lifetime.md](completed/010_fix_manual_tests_formerbegin_lifetime.md) | Fix manual tests FormerBegin lifetime issues | +| 11 | 011 | 16 | 4 | 4 | 3 | Bug Fix | ✅ (Completed) | [011_fix_name_collisions.md](completed/011_fix_name_collisions.md) | Fix name collisions in generated code | +| 12 | 012 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [012_fix_parametrized_field.md](completed/012_fix_parametrized_field.md) | Fix parametrized field handling | +| 13 | 013 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [013_fix_parametrized_field_where.md](completed/013_fix_parametrized_field_where.md) | Fix parametrized field where clause issues | +| 14 | 014 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [014_fix_parametrized_struct_imm.md](completed/014_fix_parametrized_struct_imm.md) | Fix parametrized struct immutable handling | +| 15 | 015 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [015_fix_parametrized_struct_where.md](completed/015_fix_parametrized_struct_where.md) | Fix parametrized struct where clause issues | +| 16 | 016 | 36 | 6 | 6 | 5 | Bug Fix | ✅ (Completed) | [016_fix_standalone_constructor_derive.md](completed/016_fix_standalone_constructor_derive.md) | Fix standalone constructor derive functionality | +| 17 | 017 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [017_fix_subform_all_parametrized.md](completed/017_fix_subform_all_parametrized.md) | Fix subform all parametrized functionality | +| 18 | 018 | 25 | 5 | 5 | 4 | Bug Fix | ✅ (Completed) | [018_fix_subform_collection_basic.md](completed/018_fix_subform_collection_basic.md) | Fix basic subform collection functionality | +| 19 | 019 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [019_fix_subform_collection_manual_dependencies.md](completed/019_fix_subform_collection_manual_dependencies.md) | Fix subform collection manual dependencies | +| 20 | 020 | 16 | 4 | 4 | 4 | Bug Fix | ✅ (Completed) | [020_fix_subform_collection_playground.md](completed/020_fix_subform_collection_playground.md) | Fix subform collection playground functionality | +| 21 | 021 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [021_fix_subform_entry_hashmap_custom_dependencies.md](completed/021_fix_subform_entry_hashmap_custom_dependencies.md) | Fix subform entry HashMap custom dependencies | +| 22 | 022 | 25 | 5 | 5 | 8 | Bug Fix | ✅ (Completed) | [022_fix_subform_entry_manual_lifetime_bounds.md](completed/022_fix_subform_entry_manual_lifetime_bounds.md) | Fix subform entry manual lifetime bounds | +| 23 | 023 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [023_fix_subform_entry_named_manual_dependencies.md](completed/023_fix_subform_entry_named_manual_dependencies.md) | Fix subform entry named manual dependencies | +| 24 | 024 | 25 | 5 | 5 | 6 | Bug Fix | ✅ (Completed) | [024_fix_subform_scalar_manual_dependencies.md](completed/024_fix_subform_scalar_manual_dependencies.md) | Fix subform scalar manual dependencies | + +## Phases + +### Optimization +* 🔄 [001_macro_optimization.md](001_macro_optimization.md) + +### Bug Fix +* 🔄 [002_fix_collection_former_btree_map.md](002_fix_collection_former_btree_map.md) +* ⛔️ [003_fix_collection_former_hashmap.md](003_fix_collection_former_hashmap.md) +* ✅ [004_fix_former_begin_trait_bounds_for_type_only_structs.md](completed/004_fix_former_begin_trait_bounds_for_type_only_structs.md) +* ✅ [005_fix_k_type_parameter_not_found.md](completed/005_fix_k_type_parameter_not_found.md) +* ✅ [006_fix_lifetime_only_structs.md](completed/006_fix_lifetime_only_structs.md) +* ✅ [007_fix_lifetime_only_structs_missing_lifetime_specifier.md](completed/007_fix_lifetime_only_structs_missing_lifetime_specifier.md) +* ✅ [008_fix_lifetime_parsing_error.md](completed/008_fix_lifetime_parsing_error.md) +* ✅ [009_fix_lifetime_structs_implementation.md](completed/009_fix_lifetime_structs_implementation.md) +* ✅ [010_fix_manual_tests_formerbegin_lifetime.md](completed/010_fix_manual_tests_formerbegin_lifetime.md) +* ✅ [011_fix_name_collisions.md](completed/011_fix_name_collisions.md) +* ✅ [012_fix_parametrized_field.md](completed/012_fix_parametrized_field.md) +* ✅ [013_fix_parametrized_field_where.md](completed/013_fix_parametrized_field_where.md) +* ✅ [014_fix_parametrized_struct_imm.md](completed/014_fix_parametrized_struct_imm.md) +* ✅ [015_fix_parametrized_struct_where.md](completed/015_fix_parametrized_struct_where.md) +* ✅ [016_fix_standalone_constructor_derive.md](completed/016_fix_standalone_constructor_derive.md) +* ✅ [017_fix_subform_all_parametrized.md](completed/017_fix_subform_all_parametrized.md) +* ✅ [018_fix_subform_collection_basic.md](completed/018_fix_subform_collection_basic.md) +* ✅ [019_fix_subform_collection_manual_dependencies.md](completed/019_fix_subform_collection_manual_dependencies.md) +* ✅ [020_fix_subform_collection_playground.md](completed/020_fix_subform_collection_playground.md) +* ✅ [021_fix_subform_entry_hashmap_custom_dependencies.md](completed/021_fix_subform_entry_hashmap_custom_dependencies.md) +* ✅ [022_fix_subform_entry_manual_lifetime_bounds.md](completed/022_fix_subform_entry_manual_lifetime_bounds.md) +* ✅ [023_fix_subform_entry_named_manual_dependencies.md](completed/023_fix_subform_entry_named_manual_dependencies.md) +* ✅ [024_fix_subform_scalar_manual_dependencies.md](completed/024_fix_subform_scalar_manual_dependencies.md) + +## Issues Index + +| ID | Title | Related Task | Status | +|---|---|---|---| + +## Issues \ No newline at end of file diff --git a/module/core/former_meta/Cargo.toml b/module/core/former_meta/Cargo.toml index 51f281fa73..e4b21057d5 100644 --- a/module/core/former_meta/Cargo.toml +++ b/module/core/former_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "former_meta" -version = "2.26.0" +version = "2.27.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -65,4 +65,4 @@ iter_tools = { workspace = true } convert_case = { version = "0.6.0", default-features = false, optional = true, features = [] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/former_types/Cargo.toml b/module/core/former_types/Cargo.toml index bf23aeedff..e3538dca51 100644 --- a/module/core/former_types/Cargo.toml +++ b/module/core/former_types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "former_types" -version = "2.23.0" +version = "2.24.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -48,4 +48,4 @@ component_model_types = { workspace = true, features = ["enabled", "types_compon [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/fs_tools/Cargo.toml b/module/core/fs_tools/Cargo.toml index a18225e9d8..24a4a94197 100644 --- a/module/core/fs_tools/Cargo.toml +++ b/module/core/fs_tools/Cargo.toml @@ -37,4 +37,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/implements/Cargo.toml b/module/core/implements/Cargo.toml index af1ce628df..fa7dbcb065 100644 --- a/module/core/implements/Cargo.toml +++ b/module/core/implements/Cargo.toml @@ -36,4 +36,4 @@ nightly = [] [dev-dependencies] # this crate should not rely on test_tools to exclude cyclic dependencies -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/impls_index/Cargo.toml b/module/core/impls_index/Cargo.toml index 14eb531291..061d592a53 100644 --- a/module/core/impls_index/Cargo.toml +++ b/module/core/impls_index/Cargo.toml @@ -33,5 +33,5 @@ enabled = [ "impls_index_meta/enabled" ] impls_index_meta = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } #tempdir = { version = "0.3.7" } diff --git a/module/core/include_md/Cargo.toml b/module/core/include_md/Cargo.toml index bce865690b..fc6fd11f32 100644 --- a/module/core/include_md/Cargo.toml +++ b/module/core/include_md/Cargo.toml @@ -58,4 +58,4 @@ path = "src/_blank/standard_lib.rs" [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/inspect_type/Cargo.toml b/module/core/inspect_type/Cargo.toml index 0fe3f4f3c1..4092a4f678 100644 --- a/module/core/inspect_type/Cargo.toml +++ b/module/core/inspect_type/Cargo.toml @@ -33,7 +33,7 @@ enabled = [] [dev-dependencies] # this crate should not rely on test_tools to exclude cyclic dependencies -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } [build-dependencies] rustc_version = "0.4" diff --git a/module/core/interval_adapter/Cargo.toml b/module/core/interval_adapter/Cargo.toml index 0804996b4f..ea18e29aeb 100644 --- a/module/core/interval_adapter/Cargo.toml +++ b/module/core/interval_adapter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "interval_adapter" -version = "0.35.0" +version = "0.36.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -35,4 +35,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/is_slice/Cargo.toml b/module/core/is_slice/Cargo.toml index 58543ff8c6..307a741c9d 100644 --- a/module/core/is_slice/Cargo.toml +++ b/module/core/is_slice/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dev-dependencies] # this crate should not rely on test_tools to exclude cyclic dependencies -# test_tools = { workspace = true } +# test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/iter_tools/Cargo.toml b/module/core/iter_tools/Cargo.toml index fb3cb9c6b5..511fae0e24 100644 --- a/module/core/iter_tools/Cargo.toml +++ b/module/core/iter_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iter_tools" -version = "0.36.0" +version = "0.37.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -50,4 +50,4 @@ itertools = { version = "~0.11.0", features = [ "use_std" ] } clone_dyn_types = { workspace = true, features = [] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/macro_tools/Cargo.toml b/module/core/macro_tools/Cargo.toml index 62690a4052..d0b8e016e0 100644 --- a/module/core/macro_tools/Cargo.toml +++ b/module/core/macro_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "macro_tools" -version = "0.65.0" +version = "0.67.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -118,4 +118,4 @@ clone_dyn_types = { workspace = true, features = [] } component_model_types = { workspace = true, features = [ "types_component_assign" ] } [dev-dependencies] -test_tools = { workspace = true } # Added test_tools dependency +test_tools = { workspace = true, features = [ "full" ] } # Added test_tools dependency diff --git a/module/core/mem_tools/Cargo.toml b/module/core/mem_tools/Cargo.toml index 2eda09509e..9137737141 100644 --- a/module/core/mem_tools/Cargo.toml +++ b/module/core/mem_tools/Cargo.toml @@ -46,4 +46,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/meta_tools/Cargo.toml b/module/core/meta_tools/Cargo.toml index b77eea668f..759c8bf224 100644 --- a/module/core/meta_tools/Cargo.toml +++ b/module/core/meta_tools/Cargo.toml @@ -66,4 +66,4 @@ mod_interface = { workspace = true, optional = true } mod_interface_meta = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/mod_interface/Cargo.toml b/module/core/mod_interface/Cargo.toml index c96b0535f8..ea955faa19 100644 --- a/module/core/mod_interface/Cargo.toml +++ b/module/core/mod_interface/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mod_interface" -version = "0.43.0" +version = "0.44.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -44,4 +44,4 @@ path = "examples/mod_interface_debug/src/main.rs" mod_interface_meta = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/mod_interface_meta/Cargo.toml b/module/core/mod_interface_meta/Cargo.toml index 578f9d835b..386e581fae 100644 --- a/module/core/mod_interface_meta/Cargo.toml +++ b/module/core/mod_interface_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mod_interface_meta" -version = "0.41.0" +version = "0.42.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -46,4 +46,4 @@ macro_tools = { workspace = true } derive_tools = { workspace = true, features = [ "enabled", "derive_is_variant" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/process_tools/Cargo.toml b/module/core/process_tools/Cargo.toml index fe65805962..2e40fbfbfc 100644 --- a/module/core/process_tools/Cargo.toml +++ b/module/core/process_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "process_tools" -version = "0.14.0" +version = "0.15.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -49,5 +49,5 @@ duct = "0.13.7" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } assert_fs = { version = "1.1.1" } diff --git a/module/core/program_tools/Cargo.toml b/module/core/program_tools/Cargo.toml index 4f827dc0eb..dd810d99b9 100644 --- a/module/core/program_tools/Cargo.toml +++ b/module/core/program_tools/Cargo.toml @@ -53,5 +53,5 @@ iter_tools = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # assert_fs = { version = "1.1.1" } diff --git a/module/core/pth/Cargo.toml b/module/core/pth/Cargo.toml index 9015889ec6..60fbc48339 100644 --- a/module/core/pth/Cargo.toml +++ b/module/core/pth/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pth" -version = "0.24.0" +version = "0.25.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -52,4 +52,4 @@ serde = { version = "1.0.197", optional = true, features = [ "derive" ] } camino = { version = "1.1.7", optional = true, features = [] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/pth/src/lib.rs b/module/core/pth/src/lib.rs index 4fb44a3289..87f78f1745 100644 --- a/module/core/pth/src/lib.rs +++ b/module/core/pth/src/lib.rs @@ -59,7 +59,7 @@ mod_interface! { // own use ::std::path::{ PathBuf, Path, Component }; #[ cfg( not( feature = "no_std" ) ) ] - own use ::std::path::*; + exposed use ::std::path::{ Path, PathBuf }; #[ cfg( not( feature = "no_std" ) ) ] own use ::std::borrow::Cow; diff --git a/module/core/pth/src/path.rs b/module/core/pth/src/path.rs index 5d88861840..5595c01f4c 100644 --- a/module/core/pth/src/path.rs +++ b/module/core/pth/src/path.rs @@ -208,6 +208,7 @@ mod private #[ cfg( feature = "no_std" ) ] extern crate alloc; #[ cfg( feature = "no_std" ) ] + #[ allow( unused_imports ) ] use alloc::string::ToString; // println!( "a" ); @@ -330,11 +331,13 @@ mod private /// # Panics /// qqq: doc // qqq : make macro paths_join!( ... ) - pub fn iter_join< 'a ,I, P >( paths : I ) -> PathBuf + pub fn iter_join< 'a ,I, P >( paths : I ) -> std::path::PathBuf where I : Iterator< Item = P >, P : TryIntoCowPath< 'a >, { + #[ allow( unused_imports ) ] + use std::path::PathBuf; #[ cfg( feature = "no_std" ) ] extern crate alloc; #[ cfg( feature = "no_std" ) ] diff --git a/module/core/pth/src/path/absolute_path.rs b/module/core/pth/src/path/absolute_path.rs index 92bb423cf1..3d92c61703 100644 --- a/module/core/pth/src/path/absolute_path.rs +++ b/module/core/pth/src/path/absolute_path.rs @@ -5,6 +5,7 @@ mod private use std:: { path::{ Path, PathBuf }, + borrow::Cow, io, }; use core:: diff --git a/module/core/pth/src/path/canonical_path.rs b/module/core/pth/src/path/canonical_path.rs index bebb80d2e2..b84c9304a3 100644 --- a/module/core/pth/src/path/canonical_path.rs +++ b/module/core/pth/src/path/canonical_path.rs @@ -5,7 +5,7 @@ mod private use std:: { - // borrow::Cow, + borrow::Cow, path::{ Path, PathBuf }, io, }; diff --git a/module/core/pth/src/path/current_path.rs b/module/core/pth/src/path/current_path.rs index dbe22da127..d2bd06af69 100644 --- a/module/core/pth/src/path/current_path.rs +++ b/module/core/pth/src/path/current_path.rs @@ -7,6 +7,8 @@ mod private { env, io, + path::{ Path, PathBuf }, + borrow::Cow, }; #[cfg(feature = "no_std")] @@ -17,6 +19,8 @@ mod private { env, io, + path::{ Path, PathBuf }, + borrow::Cow, }; /// Symbolize current path. diff --git a/module/core/pth/src/path/native_path.rs b/module/core/pth/src/path/native_path.rs index 0cc4f5a211..b00bd96011 100644 --- a/module/core/pth/src/path/native_path.rs +++ b/module/core/pth/src/path/native_path.rs @@ -7,7 +7,7 @@ mod private use std:: { - // borrow::Cow, + borrow::Cow, path::{ Path, PathBuf }, io, }; diff --git a/module/core/pth/src/try_into_cow_path.rs b/module/core/pth/src/try_into_cow_path.rs index e8ed4ebea0..a9c58a4e29 100644 --- a/module/core/pth/src/try_into_cow_path.rs +++ b/module/core/pth/src/try_into_cow_path.rs @@ -10,6 +10,7 @@ mod private borrow::Cow, io, path::{ Component, Path, PathBuf }, + string::String, }; #[cfg(feature = "no_std")] @@ -21,6 +22,7 @@ mod private borrow::Cow, io, path::{ Component, Path, PathBuf }, + string::String, }; // use camino::{ Utf8Path, Utf8PathBuf }; diff --git a/module/core/pth/src/try_into_path.rs b/module/core/pth/src/try_into_path.rs index bbe2876f50..173cb6196d 100644 --- a/module/core/pth/src/try_into_path.rs +++ b/module/core/pth/src/try_into_path.rs @@ -9,6 +9,7 @@ mod private { io, path::{ Component, Path, PathBuf }, + string::String, }; #[cfg(feature = "no_std")] @@ -19,6 +20,7 @@ mod private { io, path::{ Component, Path, PathBuf }, + string::String, }; // use camino::{ Utf8Path, Utf8PathBuf }; diff --git a/module/core/reflect_tools/Cargo.toml b/module/core/reflect_tools/Cargo.toml index 5ca7c35227..c244c6f9fc 100644 --- a/module/core/reflect_tools/Cargo.toml +++ b/module/core/reflect_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "reflect_tools" -version = "0.6.0" +version = "0.7.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -51,7 +51,7 @@ collection_tools = { workspace = true, features = [] } # qqq : xxx : optimize features set [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } collection_tools = { workspace = true, features = [ "collection_constructors", "collection_into_constructors" ] } # [build-dependencies] diff --git a/module/core/reflect_tools/src/lib.rs b/module/core/reflect_tools/src/lib.rs index c9907a3c76..f93aeb43e2 100644 --- a/module/core/reflect_tools/src/lib.rs +++ b/module/core/reflect_tools/src/lib.rs @@ -4,6 +4,20 @@ #![ doc( html_root_url = "https://docs.rs/reflect_tools/latest/reflect_tools/" ) ] #![ cfg_attr( doc, doc = include_str!( concat!( env!( "CARGO_MANIFEST_DIR" ), "/", "readme.md" ) ) ) ] #![ cfg_attr( not( doc ), doc = "Reflection utilities" ) ] +#![ allow( clippy::used_underscore_items ) ] +#![ allow( clippy::len_without_is_empty ) ] +#![ allow( clippy::iter_skip_next ) ] +#![ allow( clippy::must_use_candidate ) ] +#![ allow( clippy::used_underscore_binding ) ] +#![ allow( clippy::needless_return ) ] +#![ allow( clippy::missing_panics_doc ) ] +#![ allow( clippy::elidable_lifetime_names ) ] +#![ allow( clippy::std_instead_of_core ) ] +#![ allow( clippy::semicolon_if_nothing_returned ) ] +#![ allow( clippy::implicit_hasher ) ] +#![ allow( clippy::doc_markdown ) ] +#![ allow( clippy::useless_conversion ) ] +#![ allow( clippy::needless_range_loop ) ] #[ cfg( feature = "enabled" ) ] #[ cfg( feature = "reflect_types" ) ] diff --git a/module/core/reflect_tools/src/reflect/primitive.rs b/module/core/reflect_tools/src/reflect/primitive.rs index 23ce9a125e..5ab977eb09 100644 --- a/module/core/reflect_tools/src/reflect/primitive.rs +++ b/module/core/reflect_tools/src/reflect/primitive.rs @@ -202,6 +202,7 @@ mod private } #[ allow( non_camel_case_types ) ] + #[ allow( dead_code ) ] #[ derive( Debug, PartialEq ) ] pub enum Data< const N : usize = 0 > { diff --git a/module/core/reflect_tools_meta/Cargo.toml b/module/core/reflect_tools_meta/Cargo.toml index d3fbfa6a70..4cae988118 100644 --- a/module/core/reflect_tools_meta/Cargo.toml +++ b/module/core/reflect_tools_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "reflect_tools_meta" -version = "0.6.0" +version = "0.7.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -46,4 +46,4 @@ macro_tools = { workspace = true, features = [ "default" ] } # xxx : qqq : optimize features set [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/strs_tools/Cargo.toml b/module/core/strs_tools/Cargo.toml index 9edbf8f6ba..7b66cef118 100644 --- a/module/core/strs_tools/Cargo.toml +++ b/module/core/strs_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "strs_tools" -version = "0.28.0" +version = "0.29.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -131,7 +131,7 @@ lazy_static = { version = "1.4", optional = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } criterion = { version = "0.5", features = ["html_reports"] } ctor = { version = "0.2" } diff --git a/module/core/strs_tools/src/lib.rs b/module/core/strs_tools/src/lib.rs index 0e937df4d2..df23a48fa0 100644 --- a/module/core/strs_tools/src/lib.rs +++ b/module/core/strs_tools/src/lib.rs @@ -65,6 +65,7 @@ pub mod simd; /// Re-export compile-time optimization macros. #[ cfg( all( feature = "enabled", feature = "compile_time_optimizations" ) ) ] +#[ allow( unused_imports ) ] pub use strs_tools_meta::*; #[ doc( inline ) ] diff --git a/module/core/strs_tools_meta/Cargo.toml b/module/core/strs_tools_meta/Cargo.toml index 3b5fc8f9fa..b8fa2c45e5 100644 --- a/module/core/strs_tools_meta/Cargo.toml +++ b/module/core/strs_tools_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "strs_tools_meta" -version = "0.5.0" +version = "0.6.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -31,13 +31,11 @@ full = [ "optimize_split", "optimize_match", ] -enabled = [ "macro_tools/enabled" ] +enabled = [] -optimize_split = [] -optimize_match = [] +optimize_split = [ "dep:macro_tools" ] +optimize_match = [ "dep:macro_tools" ] [dependencies] -macro_tools = { workspace = true, features = [ "attr", "ct", "diag", "typ", "derive" ] } +macro_tools = { workspace = true, features = [ "attr", "ct", "diag", "typ", "derive", "enabled" ], optional = true } -[dev-dependencies] -test_tools = { workspace = true } diff --git a/module/core/strs_tools_meta/src/lib.rs b/module/core/strs_tools_meta/src/lib.rs index 6caba79f64..9b79fee2c3 100644 --- a/module/core/strs_tools_meta/src/lib.rs +++ b/module/core/strs_tools_meta/src/lib.rs @@ -8,11 +8,14 @@ #![ doc( html_logo_url = "https://raw.githubusercontent.com/Wandalen/wTools/master/asset/img/logo_v3_trans_square.png" ) ] #![ doc( html_favicon_url = "https://raw.githubusercontent.com/Wandalen/wTools/alpha/asset/img/logo_v3_trans_square_icon_small_v2.ico" ) ] +#[ cfg( any( feature = "optimize_split", feature = "optimize_match" ) ) ] use macro_tools:: { quote::quote, syn::{ self, Expr, LitStr, Result }, }; + +#[ cfg( any( feature = "optimize_split", feature = "optimize_match" ) ) ] use proc_macro::TokenStream; /// Analyze string patterns at compile time and generate optimized split code. @@ -286,13 +289,16 @@ impl syn::parse::Parse for OptimizeMatchInput /// Generate optimized split code based on compile-time analysis #[ cfg( feature = "optimize_split" ) ] +#[allow(clippy::too_many_lines)] fn generate_optimized_split( input: &OptimizeSplitInput ) -> macro_tools::proc_macro2::TokenStream { let source = &input.source; let delimiters = &input.delimiters; - let preserve_delimiters = input.preserve_delimiters; + #[allow(clippy::no_effect_underscore_binding)] + let _preserve_delimiters = input.preserve_delimiters; let preserve_empty = input.preserve_empty; - let use_simd = input.use_simd; + #[allow(clippy::no_effect_underscore_binding)] + let _use_simd = input.use_simd; // Compile-time optimization decisions let optimization = analyze_split_pattern( delimiters ); @@ -307,16 +313,24 @@ fn generate_optimized_split( input: &OptimizeSplitInput ) -> macro_tools::proc_m SplitOptimization::SingleCharDelimiter( delim ) => { // Generate highly optimized single-character split - quote! + if preserve_empty { + quote! { - // Compile-time optimized single character split - strs_tools::string::zero_copy::ZeroCopySplit::new() - .src( #source ) - .delimeter( #delim ) - .preserve_delimiters( #preserve_delimiters ) - .preserve_empty( #preserve_empty ) - .perform() + { + // Compile-time optimized single character split with empty preservation + #source.split( #delim ).collect::< Vec< &str > >() + } + } + } + else + { + quote! + { + { + // Compile-time optimized single character split + #source.split( #delim ).filter( |s| !s.is_empty() ).collect::< Vec< &str > >() + } } } }, @@ -324,51 +338,76 @@ fn generate_optimized_split( input: &OptimizeSplitInput ) -> macro_tools::proc_m SplitOptimization::MultipleCharDelimiters => { // Generate multi-delimiter optimization - let delim_array = delimiters.iter().map( |d| quote! { #d, } ).collect::< macro_tools::proc_macro2::TokenStream >(); + let delim_first = &delimiters[ 0 ]; - if use_simd + if delimiters.len() == 1 { - quote! + // Single multi-char delimiter + if preserve_empty { + quote! { - // Compile-time optimized SIMD multi-delimiter split - #[ cfg( feature = "simd" ) ] { - // Try SIMD first, fallback to regular if needed - let builder = strs_tools::string::zero_copy::ZeroCopySplit::new() - .src( #source ) - .delimeters( vec![ #delim_array ] ) - .preserve_delimiters( #preserve_delimiters ) - .preserve_empty( #preserve_empty ); - - // Use regular perform() for consistent return type - builder.perform() + // Compile-time optimized multi-char delimiter split with empty preservation + #source.split( #delim_first ).collect::< Vec< &str > >() } - - #[ cfg( not( feature = "simd" ) ) ] + } + } + else + { + quote! + { { - strs_tools::string::zero_copy::ZeroCopySplit::new() - .src( #source ) - .delimeters( vec![ #delim_array ] ) - .preserve_delimiters( #preserve_delimiters ) - .preserve_empty( #preserve_empty ) - .perform() + // Compile-time optimized multi-char delimiter split + #source.split( #delim_first ).filter( |s| !s.is_empty() ).collect::< Vec< &str > >() } } } } else { - quote! + // Multiple delimiters - generate pattern matching code + let delim_array = delimiters.iter().map( |d| quote! { #d } ).collect::< Vec< _ > >(); + + if preserve_empty + { + quote! + { + { + // Compile-time optimized multi-delimiter split with empty preservation + let mut result = vec![ #source ]; + let delimiters = [ #( #delim_array ),* ]; + + for delimiter in &delimiters + { + result = result.into_iter() + .flat_map( |s| s.split( delimiter ) ) + .collect(); + } + + result + } + } + } + else { + quote! { - // Compile-time optimized zero-copy multi-delimiter split - strs_tools::string::zero_copy::ZeroCopySplit::new() - .src( #source ) - .delimeters( vec![ #delim_array ] ) - .preserve_delimiters( #preserve_delimiters ) - .preserve_empty( #preserve_empty ) - .perform() + { + // Compile-time optimized multi-delimiter split + let mut result = vec![ #source ]; + let delimiters = [ #( #delim_array ),* ]; + + for delimiter in &delimiters + { + result = result.into_iter() + .flat_map( |s| s.split( delimiter ) ) + .filter( |s| !s.is_empty() ) + .collect(); + } + + result + } } } } @@ -376,12 +415,27 @@ fn generate_optimized_split( input: &OptimizeSplitInput ) -> macro_tools::proc_m SplitOptimization::ComplexPattern => { - // Generate complex pattern optimization fallback to zero-copy - quote! + // Generate complex pattern optimization fallback + let delim_first = &delimiters[ 0 ]; + + if preserve_empty + { + quote! + { + { + // Compile-time optimized complex pattern fallback with empty preservation + #source.split( #delim_first ).collect::< Vec< &str > >() + } + } + } + else { + quote! { - // Compile-time optimized complex pattern matching fallback to zero-copy - strs_tools::string::zero_copy::zero_copy_split( #source, &[ "," ] ) + { + // Compile-time optimized complex pattern fallback + #source.split( #delim_first ).filter( |s| !s.is_empty() ).collect::< Vec< &str > >() + } } } } diff --git a/module/core/strs_tools_meta/tests/integration_tests.rs b/module/core/strs_tools_meta/tests/integration_tests.rs new file mode 100644 index 0000000000..9f78e85fa6 --- /dev/null +++ b/module/core/strs_tools_meta/tests/integration_tests.rs @@ -0,0 +1,16 @@ +//! Integration tests for `strs_tools_meta` procedural macros +//! +//! # Test Matrix Summary +//! +//! This file provides the main entry point for integration tests. +//! Detailed Test Matrices are contained in individual test modules: +//! +//! - `optimize_split_tests`: Tests for `optimize_split` macro +//! - `optimize_match_tests`: Tests for `optimize_match` macro +//! + +#[ cfg( feature = "optimize_split" ) ] +mod optimize_split_tests; + +#[ cfg( feature = "optimize_match" ) ] +mod optimize_match_tests; \ No newline at end of file diff --git a/module/core/strs_tools_meta/tests/optimize_match_tests.rs b/module/core/strs_tools_meta/tests/optimize_match_tests.rs new file mode 100644 index 0000000000..25b314acb6 --- /dev/null +++ b/module/core/strs_tools_meta/tests/optimize_match_tests.rs @@ -0,0 +1,124 @@ +//! Integration tests for `optimize_match` macro +//! +//! # Test Matrix for `optimize_match` +//! +//! | Test ID | Scenario | Pattern Type | Strategy | Expected Behavior | +//! |---------|----------|--------------|----------|-------------------| +//! | TC1 | Single pattern | "prefix" | default | Single pattern optimization | +//! | TC2 | Multiple small patterns | `["http://", "https://"]` | `"first_match"` | Trie-based optimization | +//! | TC3 | Multiple large patterns | Many long patterns | "first_match" | Sequential matching | +//! | TC4 | Strategy: longest_match | `["a", "ab", "abc"]` | `"longest_match"` | Longest match strategy | +//! | TC5 | Strategy: all_matches | `["a", "b"]` | `"all_matches"` | All matches strategy | +//! | TC6 | Debug mode | "test" | default, debug | Debug output generated | +//! + +#[ cfg( feature = "optimize_match" ) ] +use strs_tools_meta::optimize_match; + +// TC1: Single pattern - should use SinglePattern optimization +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc1_single_pattern() +{ + let result = optimize_match!( "prefix_test_suffix", "test" ); + + // Should find the pattern + assert_eq!( result, Some( 7 ) ); +} + +// TC2: Multiple small patterns - should use TrieBasedMatch optimization +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc2_multiple_small_patterns() +{ + let result = optimize_match!( "https://example.com", [ "http://", "https://" ] ); + + // Should find https:// at position 0 + assert_eq!( result, Some( 0 ) ); +} + +// TC3: First match strategy explicit +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc3_first_match_strategy() +{ + let result = optimize_match!( "test http:// and https://", [ "http://", "https://" ], strategy = "first_match" ); + + // Should find http:// first at position 5 + assert_eq!( result, Some( 5 ) ); +} + +// TC4: Longest match strategy +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc4_longest_match_strategy() +{ + let result = optimize_match!( "abcdef", [ "a", "ab", "abc" ], strategy = "longest_match" ); + + // Should find the longest match + assert_eq!( result, Some( 0 ) ); +} + +// TC5: All matches strategy +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc5_all_matches_strategy() +{ + let result = optimize_match!( "a test b", [ "a", "b" ], strategy = "all_matches" ); + + // Should find first match + assert_eq!( result, Some( 0 ) ); +} + +// TC6: Debug mode test +// Note: Debug output goes to stderr and can be observed during manual testing +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc6_debug_mode() +{ + let result = optimize_match!( "test_string", "test", debug ); + + assert_eq!( result, Some( 0 ) ); +} + +// Test for explicit parameter values to avoid fragile tests +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc7_explicit_parameters() +{ + let result = optimize_match!( "test_string", "test", strategy = "first_match" ); + + assert_eq!( result, Some( 0 ) ); +} + +// Test default value equivalence - dedicated test for parameter defaults +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc8_default_value_equivalence() +{ + let result_explicit = optimize_match!( "test_string", "test", strategy = "first_match" ); + let result_default = optimize_match!( "test_string", "test" ); + + // Results should be equivalent + assert_eq!( result_explicit, result_default ); +} + +// Test no match case +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc9_no_match() +{ + let result = optimize_match!( "hello world", "xyz" ); + + assert_eq!( result, None ); +} + +// Test empty input +#[ cfg( feature = "optimize_match" ) ] +#[ test ] +fn tc10_empty_input() +{ + let result = optimize_match!( "", "test" ); + + assert_eq!( result, None ); +} \ No newline at end of file diff --git a/module/core/strs_tools_meta/tests/optimize_split_tests.rs b/module/core/strs_tools_meta/tests/optimize_split_tests.rs new file mode 100644 index 0000000000..027aee77c0 --- /dev/null +++ b/module/core/strs_tools_meta/tests/optimize_split_tests.rs @@ -0,0 +1,164 @@ +//! Integration tests for `optimize_split` macro +//! +//! # Test Matrix for `optimize_split` +//! +//! | Test ID | Scenario | Delimiter Type | Options | Expected Behavior | +//! |---------|----------|----------------|---------|-------------------| +//! | TC1 | Single char delimiter | "," | default | Single char optimization | +//! | TC2 | Multiple char single delim | "->" | default | Multi-char delimiter optimization | +//! | TC3 | Multiple delimiters | `[",", ";"]` | default | Multi-delimiter optimization | +//! | TC4 | Complex delimiters | `[",", "->", "::"]` | default | Complex pattern fallback | +//! | TC5 | Preserve delimiters | "," | preserve_delimiters=true | Include delimiters in result | +//! | TC6 | Preserve empty | "," | preserve_empty=true | Include empty segments | +//! | TC7 | SIMD disabled | `[",", ";"]` | use_simd=false | Non-SIMD path | +//! | TC8 | Debug mode | "," | debug | Debug output generated | +//! + +#[ cfg( feature = "optimize_split" ) ] +use strs_tools_meta::optimize_split; + +// TC1: Single character delimiter - should use SingleCharDelimiter optimization +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc1_single_char_delimiter() +{ + let result = optimize_split!( "a,b,c", "," ); + + // Should generate optimized single character split + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// TC2: Multiple character single delimiter - should use MultipleCharDelimiters optimization +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc2_multi_char_single_delimiter() +{ + let result = optimize_split!( "a->b->c", "->" ); + + // Should generate multi-char delimiter optimization + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// TC3: Multiple delimiters - should use MultipleCharDelimiters optimization +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc3_multiple_delimiters() +{ + let result = optimize_split!( "a,b;c", [ ",", ";" ] ); + + // Should generate multi-delimiter optimization + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// TC4: Complex delimiters - should use ComplexPattern fallback +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc4_complex_delimiters() +{ + let result = optimize_split!( "a,b->c::d", [ ",", "->", "::" ] ); + + // Should generate complex pattern fallback + assert!( result.len() >= 3 ); + assert_eq!( result[ 0 ], "a" ); +} + +// TC5: Preserve delimiters option +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc5_preserve_delimiters() +{ + let result = optimize_split!( "a,b,c", ",", preserve_delimiters = true ); + + // Should include delimiters in result + assert!( result.len() >= 3 ); + assert_eq!( result[ 0 ], "a" ); +} + +// TC6: Preserve empty segments option +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc6_preserve_empty() +{ + let result = optimize_split!( "a,,c", ",", preserve_empty = true ); + + // Should include empty segments + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "" ); + assert_eq!( result[ 2 ], "c" ); +} + +// TC7: SIMD disabled +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc7_simd_disabled() +{ + let result = optimize_split!( "a,b;c", [ ",", ";" ], use_simd = false ); + + // Should use non-SIMD path + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// TC8: Debug mode test +// Note: Debug output goes to stderr and can be observed during manual testing +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc8_debug_mode() +{ + let result = optimize_split!( "a,b,c", ",", debug ); + + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// Test for explicit parameter values to avoid fragile tests +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc9_explicit_parameters() +{ + let result = optimize_split!( + "a,b,c", + ",", + preserve_delimiters = false, + preserve_empty = false, + use_simd = true + ); + + assert_eq!( result.len(), 3 ); + assert_eq!( result[ 0 ], "a" ); + assert_eq!( result[ 1 ], "b" ); + assert_eq!( result[ 2 ], "c" ); +} + +// Test default value equivalence - dedicated test for parameter defaults +#[ cfg( feature = "optimize_split" ) ] +#[ test ] +fn tc10_default_value_equivalence() +{ + let result_explicit = optimize_split!( + "a,b,c", + ",", + preserve_delimiters = false, + preserve_empty = false, + use_simd = true + ); + + let result_default = optimize_split!( "a,b,c", "," ); + + // Results should be equivalent + assert_eq!( result_explicit, result_default ); +} \ No newline at end of file diff --git a/module/core/time_tools/Cargo.toml b/module/core/time_tools/Cargo.toml index 2b92d18a28..10eae65b98 100644 --- a/module/core/time_tools/Cargo.toml +++ b/module/core/time_tools/Cargo.toml @@ -70,4 +70,4 @@ time_chrono = [] # path = "examples/time_tools_trivial/src/main.rs" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/typing_tools/Cargo.toml b/module/core/typing_tools/Cargo.toml index b558f15d35..a243fefe47 100644 --- a/module/core/typing_tools/Cargo.toml +++ b/module/core/typing_tools/Cargo.toml @@ -59,4 +59,4 @@ is_slice = { workspace = true } implements = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/core/variadic_from/Cargo.toml b/module/core/variadic_from/Cargo.toml index 698e2a202c..f1d54a7b9e 100644 --- a/module/core/variadic_from/Cargo.toml +++ b/module/core/variadic_from/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "variadic_from" -version = "0.39.0" +version = "0.41.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -53,5 +53,5 @@ variadic_from_meta = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } trybuild = { version = "1.0", features = ["diff"] } diff --git a/module/core/variadic_from_meta/Cargo.toml b/module/core/variadic_from_meta/Cargo.toml index 24f26b47fe..f13e2b233f 100644 --- a/module/core/variadic_from_meta/Cargo.toml +++ b/module/core/variadic_from_meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "variadic_from_meta" -version = "0.10.0" +version = "0.12.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", diff --git a/module/core/workspace_tools/Cargo.toml b/module/core/workspace_tools/Cargo.toml index 1a9561baa6..20f7dc1cec 100644 --- a/module/core/workspace_tools/Cargo.toml +++ b/module/core/workspace_tools/Cargo.toml @@ -38,7 +38,7 @@ integration = [] glob = { workspace = true, optional = true } tempfile = { workspace = true, optional = true } cargo_metadata = { workspace = true, optional = true } -toml = { workspace = true, optional = true } +toml = { workspace = true, features = [ "preserve_order" ], optional = true } serde = { workspace = true, features = [ "derive" ], optional = true } serde_json = { workspace = true, optional = true } serde_yaml = { workspace = true, optional = true } diff --git a/module/core/wtools/Cargo.toml b/module/core/wtools/Cargo.toml index 27b5470564..1d9c6e34c1 100644 --- a/module/core/wtools/Cargo.toml +++ b/module/core/wtools/Cargo.toml @@ -444,4 +444,4 @@ diagnostics_tools = { workspace = true, optional = true, features = [ "default" parse-display = { version = "~0.5", optional = true, features = [ "default" ] } # have to be here because of problem with FromStr [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/benchkit/Cargo.toml b/module/move/benchkit/Cargo.toml index 4e0181b5ed..07eb427ffd 100644 --- a/module/move/benchkit/Cargo.toml +++ b/module/move/benchkit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "benchkit" -version = "0.4.0" +version = "0.5.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -85,8 +85,8 @@ error_tools = { workspace = true, features = [ "enabled" ] } # Feature-gated dependencies - using workspace where available serde_json = { workspace = true, optional = true } rand = { workspace = true, optional = true } -chrono = { workspace = true, optional = true } -criterion = { workspace = true, optional = true } +chrono = { workspace = true, features = [ "serde" ], optional = true } +criterion = { workspace = true, features = [ "html_reports" ], optional = true } # Feature-gated dependencies - not in workspace, use direct versions pulldown-cmark = { version = "0.13", optional = true } diff --git a/module/move/benchkit/readme.md b/module/move/benchkit/readme.md index 7aefcab227..4023f0a19e 100644 --- a/module/move/benchkit/readme.md +++ b/module/move/benchkit/readme.md @@ -96,6 +96,20 @@ fn update_readme_performance_docs() ```markdown ## Performance +## api_performance Results + +| Benchmark | Mean Time | Ops/sec | Min | Max | Std Dev | +|-----------|-----------|---------|-----|-----|----------| +| create_user | 36.00ns | 27777778 | 0.00ns | 40.00ns | 13.00ns | +| get_user | 40.00ns | 25000000 | 40.00ns | 40.00ns | 0.00ns | + +### Key Insights + +- **Fastest operation**: create_user (36.00ns) +- **Performance range**: 1.1x difference between fastest and slowest + + + ## api_performance Results | Benchmark | Mean Time | Ops/sec | Min | Max | Std Dev | @@ -196,6 +210,20 @@ fn update_readme_performance_docs() ## Performance +## api_performance Results + +| Benchmark | Mean Time | Ops/sec | Min | Max | Std Dev | +|-----------|-----------|---------|-----|-----|----------| +| create_user | 36.00ns | 27777778 | 0.00ns | 40.00ns | 13.00ns | +| get_user | 40.00ns | 25000000 | 40.00ns | 40.00ns | 0.00ns | + +### Key Insights + +- **Fastest operation**: create_user (36.00ns) +- **Performance range**: 1.1x difference between fastest and slowest + + + ## api_performance Results | Benchmark | Mean Time | Ops/sec | Min | Max | Std Dev | diff --git a/module/move/crates_tools/Cargo.toml b/module/move/crates_tools/Cargo.toml index 74495fc40d..3cf6ec48b0 100644 --- a/module/move/crates_tools/Cargo.toml +++ b/module/move/crates_tools/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crates_tools" -version = "0.16.0" +version = "0.17.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -36,4 +36,4 @@ tar = "~0.4" ureq = { version = "~2.9", optional = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/deterministic_rand/Cargo.toml b/module/move/deterministic_rand/Cargo.toml index 136dd50c6e..fb774e0250 100644 --- a/module/move/deterministic_rand/Cargo.toml +++ b/module/move/deterministic_rand/Cargo.toml @@ -36,14 +36,14 @@ determinism = [ "rand_chacha", "rand_seeder", "iter_tools" ] [dependencies] mod_interface = { workspace = true, features = [ "default" ] } iter_tools = { workspace = true, features = [ "default" ], optional = true } -rand = "0.8.5" -rand_chacha = { version = "0.3.1", optional = true } -rand_seeder = { version = "0.2.3", optional = true } -sealed = "0.5.0" +rand = { workspace = true } +rand_chacha = { workspace = true, optional = true } +rand_seeder = { workspace = true, optional = true } +sealed = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } -rayon = "1.8.0" +test_tools = { workspace = true, features = [ "full" ] } +rayon = { workspace = true } [[example]] name = "sample_deterministic_rand_trivial" diff --git a/module/move/deterministic_rand/src/hrng_non_deterministic.rs b/module/move/deterministic_rand/src/hrng_non_deterministic.rs index cca8aefd7c..e503c10a13 100644 --- a/module/move/deterministic_rand/src/hrng_non_deterministic.rs +++ b/module/move/deterministic_rand/src/hrng_non_deterministic.rs @@ -8,6 +8,7 @@ /// Define a private namespace for all its items. mod private { + #[ allow( unused_imports ) ] use crate::*; use core::{ops::Deref, ops::DerefMut}; diff --git a/module/move/graphs_tools/Cargo.toml b/module/move/graphs_tools/Cargo.toml index 16a6513006..3134cfb54a 100644 --- a/module/move/graphs_tools/Cargo.toml +++ b/module/move/graphs_tools/Cargo.toml @@ -53,4 +53,4 @@ derive_tools = { workspace = true, features = [ "default" ] } former = { workspace = true, features = [ "default" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/gspread/Cargo.toml b/module/move/gspread/Cargo.toml index 6a3a66ad93..378e510d90 100644 --- a/module/move/gspread/Cargo.toml +++ b/module/move/gspread/Cargo.toml @@ -48,5 +48,5 @@ rand = "0.8" once_cell = "1.20.3" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } httpmock = "0.7.0-rc.1" diff --git a/module/move/optimization_tools/Cargo.toml b/module/move/optimization_tools/Cargo.toml index 37ae6428f4..7e2f723e5c 100644 --- a/module/move/optimization_tools/Cargo.toml +++ b/module/move/optimization_tools/Cargo.toml @@ -68,4 +68,4 @@ ordered-float = "4.2.0" tabled = "0.15.0" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/plot_interface/Cargo.toml b/module/move/plot_interface/Cargo.toml index 177b70bf9c..5f013d3dcb 100644 --- a/module/move/plot_interface/Cargo.toml +++ b/module/move/plot_interface/Cargo.toml @@ -66,4 +66,4 @@ path = "tests/smoke_test.rs" wplot = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/refiner/Cargo.toml b/module/move/refiner/Cargo.toml index 8c9a516d9e..8e9d66b812 100644 --- a/module/move/refiner/Cargo.toml +++ b/module/move/refiner/Cargo.toml @@ -35,4 +35,4 @@ error_tools ={ workspace = true, features = [ "full" ] } meta_tools = { workspace = true, features = [ "full" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/sqlx_query/Cargo.toml b/module/move/sqlx_query/Cargo.toml index b9ee028ceb..2c381d65b6 100644 --- a/module/move/sqlx_query/Cargo.toml +++ b/module/move/sqlx_query/Cargo.toml @@ -33,4 +33,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } \ No newline at end of file +test_tools = { workspace = true, features = [ "full" ] } \ No newline at end of file diff --git a/module/move/unilang/Cargo.toml b/module/move/unilang/Cargo.toml index ba05860e09..f629e7788f 100644 --- a/module/move/unilang/Cargo.toml +++ b/module/move/unilang/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "unilang" -version = "0.11.0" +version = "0.12.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -21,7 +21,7 @@ keywords = [ "wtools", "CLI", "CUI", "user-interface" ] workspace = true [package.metadata.docs.rs] -features = [ "full", "error_tools/enabled", "mod_interface/enabled", "iter_tools/enabled", "former/enabled" ] +features = [ "full", "error_tools/enabled", "mod_interface/enabled", "former/enabled" ] all-features = false [features] @@ -48,7 +48,7 @@ repl = [] enhanced_repl = [ "repl", "dep:rustyline", "dep:atty" ] # This configuration suggests an action to be done when the command is unknown. In this case, when an unknown command is encountered, the system might suggest alternatives -on_unknown_suggest = [ "dep:textdistance" ] +on_unknown_suggest = [ ] [dependencies] serde = { version = "1.0", features = ["derive"] } @@ -62,15 +62,12 @@ phf = { version = "0.11", features = ["macros"] } ## internal error_tools = { workspace = true, features = [ "enabled", "error_typed", "error_untyped" ] } mod_interface = { workspace = true, features = [ "enabled" ] } -iter_tools = { workspace = true, features = [ "enabled" ] } former = { workspace = true, features = [ "enabled", "derive_former" ] } unilang_parser = { workspace = true } # SIMD features controlled by main unilang features -strs_tools = { workspace = true, features = [ "enabled", "simd" ] } # SIMD-optimized string processing ## external log = "0.4" #closure = "0.3" -textdistance = { version = "1.0", optional = true } # fuzzy commands search rustyline = { version = "14.0", optional = true } # Enhanced REPL with history and arrow keys atty = { version = "0.2", optional = true } # Terminal detection for enhanced REPL indexmap = "2.2.6" @@ -163,12 +160,11 @@ path = "benchmarks/run_all_benchmarks.rs" [build-dependencies] -phf_codegen = "0.11" serde = "1.0" serde_yaml = "0.9" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } assert_cmd = "2.0" predicates = "2.1" assert_fs = "1.0" diff --git a/module/move/unilang/examples/repl_comparison.rs b/module/move/unilang/examples/repl_comparison.rs index ac2e6850ff..ab446bfc1f 100644 --- a/module/move/unilang/examples/repl_comparison.rs +++ b/module/move/unilang/examples/repl_comparison.rs @@ -2,6 +2,13 @@ //! //! This example demonstrates the differences between basic and enhanced REPL modes, //! allowing you to see both implementations side-by-side. + +#![ allow( clippy::needless_continue ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::cast_lossless ) ] +#![ allow( clippy::std_instead_of_core ) ] +#![ allow( clippy::manual_string_new ) ] +#![ allow( clippy::collapsible_else_if ) ] //! //! ## Features Comparison //! diff --git a/module/move/unilang/readme.md b/module/move/unilang/readme.md index 3c9ed51968..3e76f8792f 100644 --- a/module/move/unilang/readme.md +++ b/module/move/unilang/readme.md @@ -882,34 +882,44 @@ fn main() -> Result<(), Box> { **Step 3: Handling Interactive Arguments** Enhanced REPL provides better support for interactive arguments: -```rust +```rust,no_run use unilang::prelude::*; -// In your REPL loop -let result = pipeline.process_command_simple(&input); - -if result.requires_interactive_input() { - if let Some(arg_name) = result.interactive_argument() { - #[cfg(feature = "enhanced_repl")] - { - // Enhanced REPL: Secure password prompt with masking - use rustyline::DefaultEditor; - let mut rl = DefaultEditor::new()?; - let password = rl.readline(&format!("Enter {}: ", arg_name))?; - // Re-run command with interactive argument... - } - - #[cfg(all(feature = "repl", not(feature = "enhanced_repl")))] - { - // Basic REPL: Standard input (visible) - use std::io::{self, Write}; - print!("Enter {}: ", arg_name); - io::stdout().flush()?; - let mut value = String::new(); - io::stdin().read_line(&mut value)?; - // Re-run command with interactive argument... - } +fn handle_interactive_input() -> Result< (), Box< dyn std::error::Error > > +{ + let registry = CommandRegistry::new(); + let mut pipeline = Pipeline::new( registry ); + let input = String::from( "example_command" ); + + // In your REPL loop + let result = pipeline.process_command_simple( &input ); + + if result.requires_interactive_input() + { + if let Some( arg_name ) = result.interactive_argument() + { + #[ cfg( feature = "enhanced_repl" ) ] + { + // Enhanced REPL: Secure password prompt with masking + use rustyline::DefaultEditor; + let mut rl = DefaultEditor::new()?; + let password = rl.readline( &format!( "Enter {}: ", arg_name ) )?; + // Re-run command with interactive argument... + } + + #[ cfg( all( feature = "repl", not( feature = "enhanced_repl" ) ) ) ] + { + // Basic REPL: Standard input (visible) + use std::io::{ self, Write }; + print!( "Enter {}: ", arg_name ); + io::stdout().flush()?; + let mut value = String::new(); + io::stdin().read_line( &mut value )?; + // Re-run command with interactive argument... + } } + } + Ok( () ) } ``` diff --git a/module/move/unilang/src/pipeline.rs b/module/move/unilang/src/pipeline.rs index 4461c5abaa..23f49d758c 100644 --- a/module/move/unilang/src/pipeline.rs +++ b/module/move/unilang/src/pipeline.rs @@ -152,7 +152,7 @@ impl CommandResult #[ must_use ] pub fn error_message( &self ) -> Option< &str > { - self.error.as_ref().map( |e| e.as_str() ) + self.error.as_deref() } /// Returns outputs if command succeeded, empty slice otherwise. @@ -171,7 +171,7 @@ impl CommandResult } } - /// Parses the error message into a structured UnilangError type. + /// Parses the error message into a structured `UnilangError` type. /// /// This enables type-safe error handling instead of fragile string matching. /// Returns None if the command succeeded. @@ -377,10 +377,7 @@ fn extract_interactive_argument( error_msg : &str ) -> Option< &str > { return Some( &arg_part[ ..arg_end ] ); } - else - { - return Some( arg_part ); - } + return Some( arg_part ); } } @@ -408,10 +405,7 @@ fn extract_command_from_error( error_msg : &str ) -> Option< &str > { return Some( &after[ ..end ] ); } - else - { - return Some( after ); - } + return Some( after ); } // Look for "command ''" pattern @@ -453,16 +447,16 @@ fn extract_available_commands( error_msg : &str ) -> Vec< String > // Extract command names - they typically start with '.' // Handle various indentation patterns - if line.starts_with( '.' ) + if let Some( stripped ) = line.strip_prefix( '.' ) { // Direct command line - if let Some( cmd_end ) = line.find( ' ' ) + if let Some( cmd_end ) = stripped.find( ' ' ) { - commands.push( line[ 1..cmd_end ].to_string() ); // Skip the '.' + commands.push( stripped[ ..cmd_end ].to_string() ); } else { - commands.push( line[ 1.. ].to_string() ); + commands.push( stripped.to_string() ); } } else if line.contains( '.' ) diff --git a/module/move/unilang/tests/api_consistency_command_result_test.rs b/module/move/unilang/tests/api_consistency_command_result_test.rs index ca0c7a956c..9afbca42b4 100644 --- a/module/move/unilang/tests/api_consistency_command_result_test.rs +++ b/module/move/unilang/tests/api_consistency_command_result_test.rs @@ -1,7 +1,9 @@ -//! Tests for API consistency improvements to CommandResult and error handling. +//! Tests for API consistency improvements to `CommandResult` and error handling. //! //! This module tests the implementation of task 019, which improves API consistency -//! by adding helper methods to CommandResult and structured error types. +//! by adding helper methods to `CommandResult` and structured error types. + +#![ allow( clippy::doc_markdown ) ] use unilang::{ CommandResult, UnilangError, OutputData }; diff --git a/module/move/unilang/tests/command_registry_debug_test.rs b/module/move/unilang/tests/command_registry_debug_test.rs index 44c2f510ec..ca312bc84a 100644 --- a/module/move/unilang/tests/command_registry_debug_test.rs +++ b/module/move/unilang/tests/command_registry_debug_test.rs @@ -6,6 +6,8 @@ //! and retrieval of commands using fully qualified names, including debug prints //! of string keys and their byte representations. //! + +#![ allow( clippy::uninlined_format_args ) ] //! | ID | Test Case | Expected Behavior | Debug Output | //! |---|---|---|---| //! | T-REG-1 | Register and retrieve command with namespace | Command should be found using its fully qualified name. | Print registered key and lookup key with byte representations. | diff --git a/module/move/unilang/tests/command_runtime_registration_failure_mre.rs b/module/move/unilang/tests/command_runtime_registration_failure_mre.rs index 23efc3df89..8e384b6854 100644 --- a/module/move/unilang/tests/command_runtime_registration_failure_mre.rs +++ b/module/move/unilang/tests/command_runtime_registration_failure_mre.rs @@ -1,5 +1,10 @@ //! MRE test for issue 017: Command Runtime Registration Failure +#![ allow( clippy::doc_markdown ) ] +#![ allow( clippy::unnecessary_wraps ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::inefficient_to_string ) ] + use unilang::{ CommandDefinition, CommandRegistry, Pipeline, ExecutionContext, VerifiedCommand, OutputData, ErrorData }; /// MRE test for issue 017: Command Runtime Registration Failure diff --git a/module/move/unilang/tests/command_validation_test.rs b/module/move/unilang/tests/command_validation_test.rs index 0e414c4727..ec201377b0 100644 --- a/module/move/unilang/tests/command_validation_test.rs +++ b/module/move/unilang/tests/command_validation_test.rs @@ -3,6 +3,11 @@ //! Tests that the framework enforces explicit dot prefixes and rejects //! commands that don't follow the naming requirements. +#![ allow( clippy::unnecessary_wraps ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::print_literal ) ] +#![ allow( clippy::single_char_pattern ) ] + use unilang::{ CommandDefinition, CommandRegistry, ExecutionContext, VerifiedCommand, OutputData, ErrorData }; fn dummy_handler(_cmd: VerifiedCommand, _ctx: ExecutionContext) -> Result< OutputData, ErrorData > diff --git a/module/move/unilang/tests/integration_complete_system_test.rs b/module/move/unilang/tests/integration_complete_system_test.rs index 3033847050..95dd83fddf 100644 --- a/module/move/unilang/tests/integration_complete_system_test.rs +++ b/module/move/unilang/tests/integration_complete_system_test.rs @@ -3,6 +3,13 @@ //! This test validates that issue 017 has been completely resolved and that //! the governing principle of "Minimum Implicit Magic" is properly enforced. +#![ allow( clippy::needless_pass_by_value ) ] +#![ allow( clippy::unnecessary_wraps ) ] +#![ allow( clippy::too_many_lines ) ] +#![ allow( clippy::inefficient_to_string ) ] +#![ allow( clippy::uninlined_format_args ) ] +#![ allow( clippy::map_unwrap_or ) ] + use unilang::{ CommandDefinition, CommandRegistry, Pipeline, ExecutionContext, VerifiedCommand, OutputData, ErrorData }; fn demo_handler(cmd: VerifiedCommand, _ctx: ExecutionContext) -> Result< OutputData, ErrorData > diff --git a/module/move/unilang/tests/issue_017_corrected_registration_test.rs b/module/move/unilang/tests/issue_017_corrected_registration_test.rs index 8dfea157c7..63528eb3c7 100644 --- a/module/move/unilang/tests/issue_017_corrected_registration_test.rs +++ b/module/move/unilang/tests/issue_017_corrected_registration_test.rs @@ -3,6 +3,10 @@ //! This test shows the solution to issue 017: register commands without dot prefix, //! let the interpreter add it automatically. +#![ allow( clippy::unnecessary_wraps ) ] +#![ allow( clippy::inefficient_to_string ) ] +#![ allow( clippy::uninlined_format_args ) ] + use unilang::{ CommandDefinition, CommandRegistry, Pipeline, ExecutionContext, VerifiedCommand, OutputData, ErrorData }; fn create_test_command_handler(_cmd: VerifiedCommand, _ctx: ExecutionContext) -> Result< OutputData, ErrorData > diff --git a/module/move/unilang/tests/issue_017_solution_documentation.rs b/module/move/unilang/tests/issue_017_solution_documentation.rs index ee9015a376..7faed9a186 100644 --- a/module/move/unilang/tests/issue_017_solution_documentation.rs +++ b/module/move/unilang/tests/issue_017_solution_documentation.rs @@ -1,5 +1,8 @@ //! Issue 017 Solution Documentation and Demonstration //! + +#![ allow( clippy::uninlined_format_args ) ] +//! //! **Problem**: Commands registered with dot prefixes (e.g., ".chat") failed at runtime //! with "No executable routine found" errors, despite successful registration. //! diff --git a/module/move/unilang_meta/Cargo.toml b/module/move/unilang_meta/Cargo.toml index c1f7f82f2c..07d4537771 100644 --- a/module/move/unilang_meta/Cargo.toml +++ b/module/move/unilang_meta/Cargo.toml @@ -54,4 +54,4 @@ iter_tools = { workspace = true, features = [ "iter_trait" ] } component_model_types = { workspace = true, features = [ "types_component_assign" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/unilang_parser/Cargo.toml b/module/move/unilang_parser/Cargo.toml index 44e675eff0..8ba135f437 100644 --- a/module/move/unilang_parser/Cargo.toml +++ b/module/move/unilang_parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "unilang_parser" -version = "0.10.0" +version = "0.11.0" edition = "2021" license = "MIT" readme = "readme.md" @@ -25,7 +25,7 @@ error_tools = { workspace = true, features = [ "enabled", "error_typed" ] } iter_tools = { workspace = true, features = [ "enabled" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } [lints] workspace = true diff --git a/module/move/unitore/Cargo.toml b/module/move/unitore/Cargo.toml index fcae75b7be..9f82d05fca 100644 --- a/module/move/unitore/Cargo.toml +++ b/module/move/unitore/Cargo.toml @@ -51,4 +51,4 @@ cli-table = "0.4.7" textwrap = "0.16.1" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/move/wca/Cargo.toml b/module/move/wca/Cargo.toml index 1eb8bb40f4..838207577f 100644 --- a/module/move/wca/Cargo.toml +++ b/module/move/wca/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wca" -version = "0.27.0" +version = "0.28.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -54,6 +54,6 @@ textdistance = { version = "1.0", optional = true } # fuzzy commands search indexmap = "2.2.6" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } assert_fs = "1.0" criterion = "0.5" diff --git a/module/move/willbe/Cargo.toml b/module/move/willbe/Cargo.toml index 1eb15c4fed..4d815a7c5b 100644 --- a/module/move/willbe/Cargo.toml +++ b/module/move/willbe/Cargo.toml @@ -1,7 +1,7 @@ # module/move/willbe/Cargo.toml [package] name = "willbe" -version = "0.23.0" +version = "0.24.0" edition = "2021" authors = [ "Kostiantyn Wandalen ", @@ -99,7 +99,7 @@ collection_tools = { workspace = true, features = [ "collection_constructors", " macro_tools = { workspace = true, features = [ "default" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } assert_fs = "1.0" serde_yaml = "0.9" serde_json = "1.0.114" diff --git a/module/move/willbe/src/action/cicd_renew.rs b/module/move/willbe/src/action/cicd_renew.rs index b435b7fe45..42a5009898 100644 --- a/module/move/willbe/src/action/cicd_renew.rs +++ b/module/move/willbe/src/action/cicd_renew.rs @@ -9,7 +9,7 @@ mod private io::{ Write, Read }, }; - use pth::Path; + use std::path::Path; use collection_tools::collection::BTreeMap; use convert_case::{ Casing, Case }; use handlebars::{ RenderError, TemplateError }; diff --git a/module/move/willbe/src/action/publish_diff.rs b/module/move/willbe/src/action/publish_diff.rs index 8c7f62526e..81e078d6d5 100644 --- a/module/move/willbe/src/action/publish_diff.rs +++ b/module/move/willbe/src/action/publish_diff.rs @@ -4,7 +4,7 @@ mod private { use crate::*; - use pth::PathBuf; + use std::path::PathBuf; use collection_tools::collection::HashMap; use std::fmt; use colored::Colorize; diff --git a/module/move/willbe/src/action/test.rs b/module/move/willbe/src/action/test.rs index 18a7b54d0f..3a0b866cce 100644 --- a/module/move/willbe/src/action/test.rs +++ b/module/move/willbe/src/action/test.rs @@ -54,6 +54,7 @@ mod private optimizations : HashSet< optimization::Optimization >, #[ former( default = 1000u32 ) ] variants_cap : u32, + #[ cfg( feature = "progress_bar" ) ] #[ former( default = false ) ] with_progress : bool, } @@ -120,8 +121,14 @@ Try to install it with `rustup install {}` command(-s)", with_none_features, optimizations, variants_cap, + #[ cfg( feature = "progress_bar" ) ] with_progress, } = o; + + // Default value when progress_bar feature is disabled + #[ cfg( not( feature = "progress_bar" ) ) ] + #[ allow( unused_variables ) ] + let with_progress = false; // zzz : watch and review after been ready // aaa : for Petro : use relevant entity. use either, implement TryFrom< Either< CrateDir, ManifestFile > > @@ -210,8 +217,10 @@ Try to install it with `rustup install {}` command(-s)", .concurrent( concurrent ) .plan( plan ) .option_temp( temp_path ) - .dry( dry ) - .with_progress( with_progress ); + .dry( dry ); + + #[ cfg( feature = "progress_bar" ) ] + let test_options_former = test_options_former.with_progress( with_progress ); let options = test_options_former.form(); let result = tests_run( &options ); diff --git a/module/move/willbe/src/command/mod.rs b/module/move/willbe/src/command/mod.rs index 0b1c1f1292..99b9145ee7 100644 --- a/module/move/willbe/src/command/mod.rs +++ b/module/move/willbe/src/command/mod.rs @@ -196,11 +196,6 @@ with_gitpod: If set to 1, a column with a link to Gitpod will be added. Clicking .kind( Type::Number ) .optional( true ) .end() - .property( "with_progress" ) - .hint( "If true, will display progressbar during the tests. Default is `true`. ! Work only with `progress_bar` feature !") - .kind( Type::Bool ) - .optional( true ) - .end() .routine( command::test ) .end() diff --git a/module/move/willbe/src/command/test.rs b/module/move/willbe/src/command/test.rs index a2ccb107e7..ac75f614f2 100644 --- a/module/move/willbe/src/command/test.rs +++ b/module/move/willbe/src/command/test.rs @@ -47,6 +47,7 @@ mod private with_debug : bool, #[ former( default = false ) ] with_release : bool, + #[ cfg( feature = "progress_bar" ) ] #[ former( default = true ) ] with_progress : bool, } @@ -90,8 +91,14 @@ mod private with_none_features, with_debug, with_release, + #[ cfg( feature = "progress_bar" ) ] with_progress } = o.props.try_into()?; + + // Default value when progress_bar feature is disabled + #[ cfg( not( feature = "progress_bar" ) ) ] + #[ allow( unused_variables ) ] + let with_progress = false; let mut channels = HashSet::new(); if with_stable { channels.insert( Channel::Stable ); } @@ -119,9 +126,12 @@ Set at least one of them to true." ); .enabled_features( enabled_features ) .with_all_features( with_all_features ) .with_none_features( with_none_features ) - .optimizations( optimizations ) - .with_progress( with_progress ) - .form(); + .optimizations( optimizations ); + + #[ cfg( feature = "progress_bar" ) ] + let args = args.with_progress( with_progress ); + + let args = args.form(); match action::test( args, dry ) { @@ -183,8 +193,11 @@ Set at least one of them to true." ); .get_owned( "with_none_features" ) { this.with_none_features::< bool >( v ) } else { this }; this = if let Some( v ) = value .get_owned( "always" ) { this.enabled_features::< Vec< String > >( v ) } else { this }; - this = if let Some( v ) = value - .get_owned( "with_progress" ) { this.with_progress::< bool >( v ) } else { this }; + #[ cfg( feature = "progress_bar" ) ] + { + this = if let Some( v ) = value + .get_owned( "with_progress" ) { this.with_progress::< bool >( v ) } else { this }; + } Ok( this.form() ) } diff --git a/module/move/willbe/src/entity/channel.rs b/module/move/willbe/src/entity/channel.rs index 129757c805..83f290ac94 100644 --- a/module/move/willbe/src/entity/channel.rs +++ b/module/move/willbe/src/entity/channel.rs @@ -8,7 +8,7 @@ mod private fmt::Formatter, ffi::OsString, }; - use pth::Path; + use std::path::Path; use collection_tools::collection::HashSet; use error::untyped::{ Error }; diff --git a/module/move/willbe/src/entity/diff.rs b/module/move/willbe/src/entity/diff.rs index c3b68c640d..fedbade732 100644 --- a/module/move/willbe/src/entity/diff.rs +++ b/module/move/willbe/src/entity/diff.rs @@ -5,7 +5,7 @@ mod private use crate::*; use std::fmt::Formatter; - use pth::PathBuf; + use std::path::PathBuf; use collection_tools::collection::HashMap; use colored::Colorize; use crates_tools::CrateArchive; diff --git a/module/move/willbe/src/entity/test.rs b/module/move/willbe/src/entity/test.rs index ff75f33d6d..784633fd6c 100644 --- a/module/move/willbe/src/entity/test.rs +++ b/module/move/willbe/src/entity/test.rs @@ -309,6 +309,7 @@ mod private temp_path : Option< path::PathBuf >, plan : &'a TestPackagePlan, dry : bool, + #[ cfg( feature = "progress_bar" ) ] with_progress : bool, #[ cfg( feature = "progress_bar" ) ] progress_bar : progress_bar::ProgressBar< 'a > @@ -772,8 +773,10 @@ mod private let test_package_options = PackageTestOptions::former() .option_temp( args.temp_path.clone() ) .plan( plan ) - .dry( args.dry ) - .with_progress( args.with_progress ); + .dry( args.dry ); + + #[ cfg( feature = "progress_bar" ) ] + let test_package_options = test_package_options.with_progress( args.with_progress ); #[ cfg( feature = "progress_bar" ) ] let test_package_options = diff --git a/module/move/willbe/src/tool/graph.rs b/module/move/willbe/src/tool/graph.rs index 32fe31c0e5..b04a8891db 100644 --- a/module/move/willbe/src/tool/graph.rs +++ b/module/move/willbe/src/tool/graph.rs @@ -15,7 +15,7 @@ mod private hash::Hash, }; use collection_tools::collection::{ HashMap, HashSet, VecDeque }; - use pth::PathBuf; + use std::path::PathBuf; use petgraph:: { graph::Graph, diff --git a/module/move/willbe/template/workspace/Makefile b/module/move/willbe/template/workspace/Makefile index 994c511991..5d3022d50a 100644 --- a/module/move/willbe/template/workspace/Makefile +++ b/module/move/willbe/template/workspace/Makefile @@ -39,7 +39,7 @@ sync : git.sync # make audit audit : - cargo audit + cargo audit && $(MAKE) --no-print-directory clean-cache-files # # === General commands @@ -148,4 +148,23 @@ all : fmt lint test checkmate \ test \ up \ - doc + doc \ + clean-cache-files + +# +# === Cache Cleanup === +# + +# Clean cache files created by cargo audit and other tools by adding hyphen prefix. +# This ensures they are ignored by git while preserving the data for future runs. +# +# Usage : +# make clean-cache-files +clean-cache-files: + @echo "Cleaning cache files (adding hyphen prefix for git exclusion)..." + @if [ -d "advisory-db" ]; then mv advisory-db -advisory-db 2>/dev/null || true; fi + @if [ -f "advisory-db..lock" ]; then mv advisory-db..lock -advisory-db..lock 2>/dev/null || true; fi + @if [ -d ".global-cache" ]; then mv .global-cache -.global-cache 2>/dev/null || true; fi + @if [ -d ".package-cache" ]; then mv .package-cache -.package-cache 2>/dev/null || true; fi + @if [ -d "registry" ]; then mv registry -registry 2>/dev/null || true; fi + @echo "Cache files cleaned successfully." diff --git a/module/move/willbe/tests/inc/action_tests/test.rs b/module/move/willbe/tests/inc/action_tests/test.rs index cf3ef89f96..dd208a9dd3 100644 --- a/module/move/willbe/tests/inc/action_tests/test.rs +++ b/module/move/willbe/tests/inc/action_tests/test.rs @@ -191,9 +191,12 @@ fn plan() { .dir(abs) .channels([Channel::Stable, Channel::Nightly]) .optimizations([Optimization::Debug, Optimization::Release]) - .with_none_features(true) - .with_progress(false) - .form(); + .with_none_features(true); + + #[ cfg( feature = "progress_bar" ) ] + let args = args.with_progress(false); + + let args = args.form(); let rep = test(args, true).unwrap().success_reports[0].clone().tests; diff --git a/module/move/wplot/Cargo.toml b/module/move/wplot/Cargo.toml index 182089b6a9..126dac585d 100644 --- a/module/move/wplot/Cargo.toml +++ b/module/move/wplot/Cargo.toml @@ -65,5 +65,5 @@ num-traits = { version = "~0.2" } # total_float_wrap = { version = "~0.1" } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/_video_experiment/Cargo.toml b/module/postponed/_video_experiment/Cargo.toml index b7438174a4..d19915c990 100644 --- a/module/postponed/_video_experiment/Cargo.toml +++ b/module/postponed/_video_experiment/Cargo.toml @@ -66,4 +66,4 @@ openh264 = "~0.2" [dev-dependencies] image = "~0.24" -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/automata_tools/Cargo.toml b/module/postponed/automata_tools/Cargo.toml index 3970bbe801..382af8ea7a 100644 --- a/module/postponed/automata_tools/Cargo.toml +++ b/module/postponed/automata_tools/Cargo.toml @@ -34,4 +34,4 @@ enabled = [] [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/non_std/Cargo.toml b/module/postponed/non_std/Cargo.toml index 18ffb22db4..66150e9504 100644 --- a/module/postponed/non_std/Cargo.toml +++ b/module/postponed/non_std/Cargo.toml @@ -395,4 +395,4 @@ parse-display = { version = "~0.5", optional = true, default-features = false } # have to be here because of problem with FromStr [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/std_tools/Cargo.toml b/module/postponed/std_tools/Cargo.toml index acd3f7099c..60788835da 100644 --- a/module/postponed/std_tools/Cargo.toml +++ b/module/postponed/std_tools/Cargo.toml @@ -394,4 +394,4 @@ parse-display = { version = "~0.5", optional = true, default-features = false } # have to be here because of problem with FromStr [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/std_x/Cargo.toml b/module/postponed/std_x/Cargo.toml index 1a156ba7bf..6c394f7c7d 100644 --- a/module/postponed/std_x/Cargo.toml +++ b/module/postponed/std_x/Cargo.toml @@ -396,4 +396,4 @@ parse-display = { version = "~0.5", optional = true, default-features = false } # have to be here because of problem with FromStr [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/type_constructor/Cargo.toml b/module/postponed/type_constructor/Cargo.toml index e81a20e4b8..6d973daeb9 100644 --- a/module/postponed/type_constructor/Cargo.toml +++ b/module/postponed/type_constructor/Cargo.toml @@ -115,4 +115,4 @@ derive_tools = { workspace = true, features = [ "enabled", "type_variadic_from", # type_constructor_derive_pair_meta = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/postponed/wautomata/Cargo.toml b/module/postponed/wautomata/Cargo.toml index b44b7757c0..f92ec27ced 100644 --- a/module/postponed/wautomata/Cargo.toml +++ b/module/postponed/wautomata/Cargo.toml @@ -58,5 +58,5 @@ path = "tests/wautomata_tests.rs" automata_tools = { workspace = true, features = [ "full" ] } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } wtools = { workspace = true } diff --git a/module/postponed/wpublisher/Cargo.toml b/module/postponed/wpublisher/Cargo.toml index 57bffa6619..cf5dbce285 100644 --- a/module/postponed/wpublisher/Cargo.toml +++ b/module/postponed/wpublisher/Cargo.toml @@ -51,5 +51,5 @@ enabled = [] # petgraph = "~0.6" [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } diff --git a/module/template/template_procedural_macro/Cargo.toml b/module/template/template_procedural_macro/Cargo.toml index 2369df474f..1440e80f37 100644 --- a/module/template/template_procedural_macro/Cargo.toml +++ b/module/template/template_procedural_macro/Cargo.toml @@ -60,5 +60,5 @@ procedural_macro_meta = { workspace = true } procedural_macro_runtime = { workspace = true } [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] } # trybuild = { version = "~1.0", features = [ "diff" ] } diff --git a/module/template/template_procedural_macro_runtime/Cargo.toml b/module/template/template_procedural_macro_runtime/Cargo.toml index 9764959a67..09f616c7e8 100644 --- a/module/template/template_procedural_macro_runtime/Cargo.toml +++ b/module/template/template_procedural_macro_runtime/Cargo.toml @@ -54,4 +54,4 @@ path = "tests/_integration_test/smoke_test.rs" [dependencies] [dev-dependencies] -test_tools = { workspace = true } +test_tools = { workspace = true, features = [ "full" ] }