From 4c1bac2857dab480dce684f493792ea286aa713e Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Fri, 5 Jan 2024 07:48:51 +0100 Subject: [PATCH] Rewrite library with procedural macros (#1) --- .directory | 2 + .idea/inspectionProfiles/Project_Default.xml | 2 + .idea/{micronfig.iml => micronfig_root.iml} | 0 .idea/modules.xml | 4 +- Cargo.toml | 37 +-- Micronfig.iml | 9 + _workspace.iml | 13 + examples/e01_the_cave/Cargo.toml | 8 - examples/e01_the_cave/src/main.rs | 9 - examples/e02_quick_math/Cargo.toml | 8 - examples/e02_quick_math/src/main.rs | 52 ---- examples/e03_order_a_pizza/Cargo.toml | 8 - examples/e03_order_a_pizza/src/main.rs | 119 ------- micronfig/Cargo.toml | 26 ++ micronfig/src/cache.rs | 212 +++++++++++++ micronfig/src/envdot.rs | 168 ++++++++++ micronfig/src/envfiles.rs | 53 ++++ micronfig/src/envvars.rs | 27 ++ micronfig/src/lib.rs | 194 ++++++++++++ micronfig/src/testing.rs | 13 + micronfig_macros/Cargo.toml | 24 ++ micronfig_macros/micronfig_macros.iml | 14 + micronfig_macros/src/lib.rs | 205 ++++++++++++ .../tests/sources/chain_single_down.rs | 8 + .../tests/sources/chain_single_up.rs | 8 + micronfig_macros/tests/sources/empty.rs | 7 + .../tests/sources/example_angybot.rs | 53 ++++ .../sources/example_distributedarcade.rs | 17 + .../tests/sources/example_patchedporobot.rs | 34 ++ .../tests/sources/from_single_custom.rs | 17 + .../tests/sources/parse_single_custom.rs | 19 ++ .../tests/sources/parse_single_i64.rs | 8 + .../tests/sources/parse_single_pathbuf.rs | 8 + .../tests/sources/parse_single_u64.rs | 8 + .../sources/parse_single_u64_optional.rs | 8 + .../tests/sources/string_multi_explicit.rs | 14 + .../tests/sources/string_multi_implicit.rs | 14 + .../tests/sources/string_multi_mixed.rs | 14 + .../tests/sources/string_single_explicit.rs | 8 + .../tests/sources/string_single_implicit.rs | 8 + .../tests/sources/tryfrom_single_custom.rs | 19 ++ .../sources/wrong_conversion_longfatarrow.rs | 8 + .../wrong_conversion_longfatarrow.stderr | 11 + .../sources/wrong_conversion_longthinarrow.rs | 8 + .../wrong_conversion_longthinarrow.stderr | 11 + .../sources/wrong_conversion_tildearrow.rs | 8 + .../wrong_conversion_tildearrow.stderr | 11 + .../sources/wrong_conversion_trait_from.rs | 8 + .../wrong_conversion_trait_from.stderr | 24 ++ .../sources/wrong_conversion_trait_fromstr.rs | 8 + .../wrong_conversion_trait_fromstr.stderr | 28 ++ .../sources/wrong_conversion_trait_tryfrom.rs | 8 + .../wrong_conversion_trait_tryfrom.stderr | 26 ++ .../tests/sources/wrong_nonsense_1.rs | 7 + .../tests/sources/wrong_nonsense_1.stderr | 5 + .../tests/sources/wrong_nonsense_2.rs | 7 + .../tests/sources/wrong_nonsense_2.stderr | 5 + .../tests/sources/wrong_nonsense_3.rs | 7 + .../tests/sources/wrong_nonsense_3.stderr | 5 + micronfig_macros/tests/sources/wrong_start.rs | 8 + .../tests/sources/wrong_start.stderr | 11 + .../tests/sources/wrong_syntax_colon.rs | 8 + .../tests/sources/wrong_syntax_colon.stderr | 11 + .../tests/sources/wrong_syntax_type.rs | 8 + .../tests/sources/wrong_syntax_type.stderr | 11 + .../tests/sources/wrong_unqualified_import.rs | 10 + .../sources/wrong_unqualified_import.stderr | 9 + .../sources/wrong_unqualified_noimport.rs | 8 + .../sources/wrong_unqualified_noimport.stderr | 19 ++ micronfig_macros/tests/tests.rs | 51 +++ src/handle/mod.rs | 153 --------- src/lib.rs | 52 ---- src/macros/mod.rs | 82 ----- src/multi/mod.rs | 293 ------------------ src/single/envfiles.rs | 137 -------- src/single/envvars.rs | 99 ------ src/single/mod.rs | 15 - src/testing/mod.rs | 17 - tests/integration/macros.rs | 17 - tests/integration/mod.rs | 1 - 80 files changed, 1592 insertions(+), 1102 deletions(-) create mode 100644 .directory rename .idea/{micronfig.iml => micronfig_root.iml} (100%) create mode 100644 Micronfig.iml create mode 100644 _workspace.iml delete mode 100644 examples/e01_the_cave/Cargo.toml delete mode 100644 examples/e01_the_cave/src/main.rs delete mode 100644 examples/e02_quick_math/Cargo.toml delete mode 100644 examples/e02_quick_math/src/main.rs delete mode 100644 examples/e03_order_a_pizza/Cargo.toml delete mode 100644 examples/e03_order_a_pizza/src/main.rs create mode 100644 micronfig/Cargo.toml create mode 100644 micronfig/src/cache.rs create mode 100644 micronfig/src/envdot.rs create mode 100644 micronfig/src/envfiles.rs create mode 100644 micronfig/src/envvars.rs create mode 100644 micronfig/src/lib.rs create mode 100644 micronfig/src/testing.rs create mode 100644 micronfig_macros/Cargo.toml create mode 100644 micronfig_macros/micronfig_macros.iml create mode 100644 micronfig_macros/src/lib.rs create mode 100644 micronfig_macros/tests/sources/chain_single_down.rs create mode 100644 micronfig_macros/tests/sources/chain_single_up.rs create mode 100644 micronfig_macros/tests/sources/empty.rs create mode 100644 micronfig_macros/tests/sources/example_angybot.rs create mode 100644 micronfig_macros/tests/sources/example_distributedarcade.rs create mode 100644 micronfig_macros/tests/sources/example_patchedporobot.rs create mode 100644 micronfig_macros/tests/sources/from_single_custom.rs create mode 100644 micronfig_macros/tests/sources/parse_single_custom.rs create mode 100644 micronfig_macros/tests/sources/parse_single_i64.rs create mode 100644 micronfig_macros/tests/sources/parse_single_pathbuf.rs create mode 100644 micronfig_macros/tests/sources/parse_single_u64.rs create mode 100644 micronfig_macros/tests/sources/parse_single_u64_optional.rs create mode 100644 micronfig_macros/tests/sources/string_multi_explicit.rs create mode 100644 micronfig_macros/tests/sources/string_multi_implicit.rs create mode 100644 micronfig_macros/tests/sources/string_multi_mixed.rs create mode 100644 micronfig_macros/tests/sources/string_single_explicit.rs create mode 100644 micronfig_macros/tests/sources/string_single_implicit.rs create mode 100644 micronfig_macros/tests/sources/tryfrom_single_custom.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_longfatarrow.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_longfatarrow.stderr create mode 100644 micronfig_macros/tests/sources/wrong_conversion_longthinarrow.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_longthinarrow.stderr create mode 100644 micronfig_macros/tests/sources/wrong_conversion_tildearrow.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_tildearrow.stderr create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_from.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_from.stderr create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_fromstr.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_fromstr.stderr create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_tryfrom.rs create mode 100644 micronfig_macros/tests/sources/wrong_conversion_trait_tryfrom.stderr create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_1.rs create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_1.stderr create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_2.rs create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_2.stderr create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_3.rs create mode 100644 micronfig_macros/tests/sources/wrong_nonsense_3.stderr create mode 100644 micronfig_macros/tests/sources/wrong_start.rs create mode 100644 micronfig_macros/tests/sources/wrong_start.stderr create mode 100644 micronfig_macros/tests/sources/wrong_syntax_colon.rs create mode 100644 micronfig_macros/tests/sources/wrong_syntax_colon.stderr create mode 100644 micronfig_macros/tests/sources/wrong_syntax_type.rs create mode 100644 micronfig_macros/tests/sources/wrong_syntax_type.stderr create mode 100644 micronfig_macros/tests/sources/wrong_unqualified_import.rs create mode 100644 micronfig_macros/tests/sources/wrong_unqualified_import.stderr create mode 100644 micronfig_macros/tests/sources/wrong_unqualified_noimport.rs create mode 100644 micronfig_macros/tests/sources/wrong_unqualified_noimport.stderr create mode 100644 micronfig_macros/tests/tests.rs delete mode 100644 src/handle/mod.rs delete mode 100644 src/lib.rs delete mode 100644 src/macros/mod.rs delete mode 100644 src/multi/mod.rs delete mode 100644 src/single/envfiles.rs delete mode 100644 src/single/envvars.rs delete mode 100644 src/single/mod.rs delete mode 100644 src/testing/mod.rs delete mode 100644 tests/integration/macros.rs delete mode 100644 tests/integration/mod.rs diff --git a/.directory b/.directory new file mode 100644 index 0000000..eb708b0 --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=/home/steffo/Workspaces/Steffo99/micronfig/icon.png diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index eaa278c..c38d772 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -2,6 +2,8 @@