diff --git a/Cargo.lock b/Cargo.lock index 33a2758..bdef44f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,9 +105,9 @@ checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "almost" @@ -325,9 +325,9 @@ dependencies = [ [[package]] name = "bon" -version = "2.3.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97493a391b4b18ee918675fb8663e53646fd09321c58b46afa04e8ce2499c869" +checksum = "a636f83af97c6946f3f5cf5c268ec02375bf5efd371110292dfd57961f57a509" dependencies = [ "bon-macros", "rustversion", @@ -335,15 +335,17 @@ dependencies = [ [[package]] name = "bon-macros" -version = "2.3.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2af3eac944c12cdf4423eab70d310da0a8e5851a18ffb192c0a5e3f7ae1663" +checksum = "a7eaf1bfaa5b8d512abfd36d0c432591fef139d3de9ee54f1f839ea109d70d33" dependencies = [ "darling", "ident_case", + "prettyplease", "proc-macro2", "quote", - "syn 2.0.87", + "rustversion", + "syn 2.0.89", ] [[package]] @@ -360,9 +362,9 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" dependencies = [ "bytemuck_derive", ] @@ -375,7 +377,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -418,9 +420,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.36" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -609,6 +611,7 @@ dependencies = [ "configurator_utils", "constcat", "derive_more", + "dir-assert", "directories", "figment", "i18n-embed", @@ -726,7 +729,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -744,7 +747,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "quote", "syn 1.0.109", @@ -753,7 +756,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.12.1" -source = "git+https://github.com/pop-os/cosmic-text.git#4fe90bb6126c22f589b46768d7754d65ae300c5e" +source = "git+https://github.com/pop-os/cosmic-text.git#1f4065c1c3399efad58841082212f7c039b58480" dependencies = [ "bitflags 2.6.0", "fontdb 0.16.2", @@ -776,7 +779,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "almost", "cosmic-config", @@ -792,9 +795,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -918,7 +921,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -929,7 +932,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -970,7 +973,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -982,7 +985,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1001,6 +1004,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "dir-assert" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52079f51e329f84f2895c4752455296d9a2dab76d7af51fc7b026f05889b1899" + [[package]] name = "directories" version = "5.0.1" @@ -1045,7 +1054,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1213,9 +1222,9 @@ checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fdeflate" @@ -1262,9 +1271,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1396,7 +1405,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1414,16 +1423,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fraction" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" -dependencies = [ - "lazy_static", - "num", -] - [[package]] name = "freedesktop-icons" version = "0.2.6" @@ -1503,7 +1502,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1807,7 +1806,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.87", + "syn 2.0.89", "unic-langid", ] @@ -1821,7 +1820,7 @@ dependencies = [ "i18n-config", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1850,7 +1849,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "dnd", "iced_accessibility", @@ -1868,7 +1867,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "accesskit", "accesskit_winit", @@ -1877,7 +1876,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "bitflags 2.6.0", "bytes", @@ -1900,7 +1899,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "futures", "iced_core", @@ -1925,7 +1924,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "bitflags 2.6.0", "bytemuck", @@ -1947,7 +1946,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -1959,7 +1958,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "bytes", "dnd", @@ -1973,7 +1972,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "bytemuck", "cosmic-text", @@ -1989,7 +1988,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "as-raw-xcb-connection", "bitflags 2.6.0", @@ -2020,7 +2019,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "dnd", "iced_renderer", @@ -2037,7 +2036,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "dnd", "iced_futures", @@ -2169,7 +2168,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2331,9 +2330,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" [[package]] name = "jni" @@ -2473,14 +2472,14 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#3c5a2d9340ca80836ce947cad8cc4c0fb1157355" +source = "git+https://github.com/pop-os/libcosmic?branch=master#0ef3cced6ae9822c7844a6d0c2295d6ff1424980" dependencies = [ "apply", "chrono", @@ -2488,7 +2487,6 @@ dependencies = [ "cosmic-theme", "css-color", "derive_setters", - "fraction", "freedesktop-icons", "iced", "iced_core", @@ -2545,7 +2543,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcb64f856d7b5144b0c102ec029f4d8a474c91c86336a2f5e96494e3d2f72db3" dependencies = [ "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2562,9 +2560,9 @@ checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "litrs" @@ -2841,70 +2839,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -2943,7 +2877,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3231,7 +3165,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3271,7 +3205,7 @@ dependencies = [ "by_address", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3364,7 +3298,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3399,7 +3333,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3435,9 +3369,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.3" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", @@ -3464,6 +3398,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.89", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -3492,14 +3436,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -3512,7 +3456,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "version_check", "yansi", ] @@ -3659,7 +3603,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -3674,9 +3618,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -3764,7 +3708,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.87", + "syn 2.0.89", "walkdir", ] @@ -3802,9 +3746,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -3853,9 +3797,9 @@ dependencies = [ [[package]] name = "scc" -version = "2.2.4" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" +checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" dependencies = [ "sdd", ] @@ -3882,7 +3826,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3933,22 +3877,22 @@ checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3959,14 +3903,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "indexmap 2.6.0", "itoa", @@ -3977,9 +3921,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures", "log", @@ -3991,13 +3935,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4241,9 +4185,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -4258,7 +4202,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4283,9 +4227,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -4305,22 +4249,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4462,7 +4406,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4596,9 +4540,9 @@ checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-linebreak" @@ -4644,9 +4588,9 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -4755,7 +4699,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-shared", ] @@ -4789,7 +4733,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5157,7 +5101,7 @@ checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5168,7 +5112,7 @@ checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5569,9 +5513,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -5581,13 +5525,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5625,27 +5569,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -5668,7 +5612,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index f546a0e..17876dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,5 +43,5 @@ log = "0.4" # kdl = "4.6.0" # knuffel = "3.2.0" indexmap = "2" -bon = "2" +bon = "3" pretty_assertions = "1" diff --git a/configurator/Cargo.toml b/configurator/Cargo.toml index 00d36c1..eb47930 100644 --- a/configurator/Cargo.toml +++ b/configurator/Cargo.toml @@ -59,3 +59,4 @@ features = [ configurator_schema = { workspace = true } serial_test = "3" pretty_assertions.workspace = true +dir-assert = "0.2" diff --git a/configurator/src/app.rs b/configurator/src/app.rs index 4c07260..9206260 100644 --- a/configurator/src/app.rs +++ b/configurator/src/app.rs @@ -182,7 +182,8 @@ impl cosmic::Application for App { name, data_path, page_id, - } => widget::dialog("Create") + } => widget::dialog() + .title("Create") .control(text_input("name", name).on_input(AppMsg::DialogInput)) .primary_action(button::text("create").on_press(AppMsg::PageMsg( *page_id, @@ -198,7 +199,8 @@ impl cosmic::Application for App { name, data_path, page_id, - } => widget::dialog("Rename") + } => widget::dialog() + .title("Rename") .control(text_input("name", name).on_input(AppMsg::DialogInput)) .primary_action(button::text("rename").on_press(AppMsg::PageMsg( *page_id, diff --git a/configurator/src/providers/tests.rs b/configurator/src/providers/tests.rs index 0ae37f0..cad62ca 100644 --- a/configurator/src/providers/tests.rs +++ b/configurator/src/providers/tests.rs @@ -1,6 +1,8 @@ use std::{collections::HashMap, fs, marker::PhantomData, path::Path, sync::LazyLock}; use configurator_utils::ConfigFormat; +use cosmic::cosmic_config::CosmicConfigEntry; +use dir_assert::assert_paths; use figment::{ value::{Tag, Value}, Profile, Provider, @@ -14,12 +16,28 @@ use pretty_assertions::assert_eq; /// 1. write the value /// 2. read the value and assert equal -fn write_and_read>(path: P, format: &ConfigFormat, initial_value: &Value) { - let _ = fs::remove_dir_all(path.as_ref()); +fn write_and_read, S>(path: P, format: &ConfigFormat) +where + S: Default + Serialize + CosmicConfigEntry, +{ + let _ = fs::remove_dir_all("tests"); + let default_config = S::default(); + let path = path.as_ref(); - super::write(path.as_ref(), format, initial_value).unwrap(); + { + let config_handler = + cosmic::cosmic_config::Config::with_custom_path("expected", 1, "tests".into()).unwrap(); + default_config.write_entry(&config_handler).unwrap(); + } - let value = super::read_from_format(path.as_ref(), format); + + let initial_value = &Value::serialize(default_config).unwrap(); + + super::write(path, format, initial_value).unwrap(); + + assert_paths(path, "tests/cosmic/expected/v1").unwrap(); + + let value = super::read_from_format(path, format); let value = value.data().unwrap().remove(&Profile::Default).unwrap(); @@ -28,12 +46,8 @@ fn write_and_read>(path: P, format: &ConfigFormat, initial_value: assert_eq!(initial_value, &value); } -fn write_and_read_common(format: &ConfigFormat) { - write_and_read( - "tests/cosmic_ron/config1", - format, - &Value::serialize(S::default()).unwrap(), - ); +fn write_and_read_common(format: &ConfigFormat) { + write_and_read::<_, S>("tests/cosmic/actual/v1", format); } #[test] diff --git a/configurator/src/test_common.rs b/configurator/src/test_common.rs index ed45a6e..e455298 100644 --- a/configurator/src/test_common.rs +++ b/configurator/src/test_common.rs @@ -1,9 +1,12 @@ -use std::collections::HashMap; - +use cosmic::{ + cosmic_config::{self, cosmic_config_derive::CosmicConfigEntry, CosmicConfigEntry}, + iced::Subscription, +}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; +use std::collections::HashMap; -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, PartialEq)] #[serde(default)] pub struct Complex { x: String, @@ -41,7 +44,7 @@ impl Default for Rec { } } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, PartialEq)] pub enum EnumComplex { A, B(i32), @@ -86,31 +89,31 @@ impl Default for TestVeryComplex { } } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestBool { x: bool, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestString { x: String, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestNumber { x: i32, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestFloat { x: f32, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, PartialEq)] pub enum EnumSimple { #[default] A, @@ -118,49 +121,49 @@ pub enum EnumSimple { C, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestEnumSimple { x: EnumSimple, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestEnumComplex { x: EnumComplex, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestOption { x: Option, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestOptionComplex { x: Option, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestTuple { x: (Option, i32, String), } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestVec { x: Vec, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, Default, CosmicConfigEntry)] #[serde(default)] pub struct TestHashMap { x: HashMap, } -#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize)] +#[derive(Clone, Debug, JsonSchema, Serialize, Deserialize, CosmicConfigEntry)] #[serde(default)] pub struct TestVeryComplex { x: HashMap, diff --git a/cosmic_compat/schemas/com.system76.CosmicPanel.Dock.json b/cosmic_compat/schemas/com.system76.CosmicPanel.Dock.json index 94155ff..5c336ad 100644 --- a/cosmic_compat/schemas/com.system76.CosmicPanel.Dock.json +++ b/cosmic_compat/schemas/com.system76.CosmicPanel.Dock.json @@ -3,7 +3,7 @@ "X_CONFIGURATOR_FORMAT": "cosmic_ron", "X_CONFIGURATOR_SOURCE_HOME_PATH": ".config/cosmic/com.system76.CosmicPanel.Dock/v1", "X_CONFIGURATOR_SOURCE_PATHS": "/usr/share/cosmic/com.system76.CosmicPanel.Dock/v1", - "X_CONFIGURATOR_WRITE_PATH": "/home/fedasus/Documents/configurator/configurator/test_configs/com.system76.CosmicPanel.Dock", + "X_CONFIGURATOR_WRITE_PATH": "/home/fedasus/SSD/Documents/configurator/configurator/test_configs/com.system76.CosmicPanel.Dock", "additionalProperties": false, "definitions": { "AutoHide": { diff --git a/cosmic_compat/schemas/com.system76.CosmicPanel.Panel.json b/cosmic_compat/schemas/com.system76.CosmicPanel.Panel.json index e2a48db..d44bb5d 100644 --- a/cosmic_compat/schemas/com.system76.CosmicPanel.Panel.json +++ b/cosmic_compat/schemas/com.system76.CosmicPanel.Panel.json @@ -3,7 +3,7 @@ "X_CONFIGURATOR_FORMAT": "cosmic_ron", "X_CONFIGURATOR_SOURCE_HOME_PATH": ".config/cosmic/com.system76.CosmicPanel.Panel/v1", "X_CONFIGURATOR_SOURCE_PATHS": "/usr/share/cosmic/com.system76.CosmicPanel.Panel/v1", - "X_CONFIGURATOR_WRITE_PATH": "/home/fedasus/Documents/configurator/configurator/test_configs/com.system76.CosmicPanel.Panel", + "X_CONFIGURATOR_WRITE_PATH": "/home/fedasus/SSD/Documents/configurator/configurator/test_configs/com.system76.CosmicPanel.Panel", "additionalProperties": false, "definitions": { "AutoHide": { diff --git a/dev/TODO.md b/dev/TODO.md index 981b49a..174dd77 100644 --- a/dev/TODO.md +++ b/dev/TODO.md @@ -10,4 +10,15 @@ - https://github.com/ron-rs/ron/issues/189 - https://github.com/ron-rs/ron/issues/122 - créer un nouveau type struct ValueDeserializer(NodeContainer) -et implementer Deserializer dessu. \ No newline at end of file + et implementer Deserializer dessu. + +ce qui ne marche pas + +- les enums ne sont pas bien serializées +- figment::Value ne se serialize pas correctement en ron. Notament les key des Dict qui ne sont mis entre guillement, meme pour les noms des fields. + +comment tester ? + +1. implementer CosmicConfigEntry sur les struct de Test. +2. Les écrires dans un repertoire +3. assert que le contenu est égual a la generation du provider.