diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 880495d..cf6ff74 100755 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -23,7 +23,7 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. -**Device infos (please complete the following information):** +**Device info (please complete the following information):** - OS: [e.g. GNU/Linux (ArchLinux, Debian), Windows, MacOS] - Terminal name [e.g. Tess, Konsole] - Terminal version [e.g. 1.0.0] diff --git a/Cargo.lock b/Cargo.lock index e3c8c5f..e983293 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "afetch" @@ -34,9 +34,12 @@ dependencies = [ [[package]] name = "aligned-vec" -version = "0.5.0" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] [[package]] name = "ansi_colours" @@ -78,9 +81,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "av1-grain" @@ -173,9 +176,9 @@ checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" [[package]] name = "byteorder-lite" @@ -185,9 +188,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "cc" -version = "1.2.26" +version = "1.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" dependencies = [ "jobserver", "libc", @@ -206,9 +209,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -227,7 +230,7 @@ name = "colored" version = "3.0.0" source = "git+https://github.com/colored-rs/colored?branch=master#68761c1dfe306c870aa94af085c4686bce8d5fbd" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -239,7 +242,7 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -356,7 +359,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] @@ -377,6 +380,26 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -390,7 +413,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -441,7 +464,7 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] @@ -468,9 +491,9 @@ dependencies = [ [[package]] name = "glam" -version = "0.30.3" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7" +checksum = "50a99dbe56b72736564cfa4b85bf9a33079f16ae8b74983ab06af3b1a3696b11" [[package]] name = "half" @@ -519,9 +542,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f" +checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b" dependencies = [ "byteorder-lite", "quick-error", @@ -585,16 +608,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -615,9 +628,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libfuzzer-sys" @@ -697,9 +710,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "minimal-lexical" @@ -709,9 +722,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", "simd-adler32", @@ -734,9 +747,9 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.9.1", "cfg-if", @@ -876,7 +889,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -935,9 +948,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" +checksum = "3d77244ce2d584cd84f6a15f86195b8c9b2a0dfbfd817c09e0464244091a58ed" dependencies = [ "base64", "indexmap", @@ -1019,9 +1032,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.32.0" +version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" dependencies = [ "memchr", ] @@ -1037,9 +1050,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -1143,9 +1156,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags 2.9.1", ] @@ -1180,7 +1193,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1193,7 +1206,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1290,9 +1303,9 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "starship-battery" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0bc92586a2cba9cd189520c457b95e50f5565c3011484a5c83949be2f9fdcc" +checksum = "5b781e3db6801873ce18c19041da668920c46223cdc7059ea20e2f8fe1ba85a2" dependencies = [ "cfg-if", "core-foundation", @@ -1303,7 +1316,7 @@ dependencies = [ "num-traits", "plist", "uom", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] @@ -1323,9 +1336,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.101" +version = "2.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" dependencies = [ "proc-macro2", "quote", @@ -1384,7 +1397,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.0.7", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1532,9 +1545,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "uom" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd36e5350a65d112584053ee91843955826bf9e56ec0d1351214e01f6d7cd9c" +checksum = "cd5cfe7d84f6774726717f358a37f5bca8fca273bed4de40604ad129d1107b49" dependencies = [ "num-traits", "typenum", @@ -1542,9 +1555,9 @@ dependencies = [ [[package]] name = "v_frame" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" dependencies = [ "aligned-vec", "num-traits", @@ -1584,9 +1597,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -1661,16 +1674,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "weezl" version = "0.1.10" @@ -1696,7 +1699,6 @@ checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" dependencies = [ "redox_syscall", "wasite", - "web-sys", ] [[package]] @@ -1721,7 +1723,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1732,9 +1734,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.61.1" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", "windows-core", @@ -1800,9 +1802,9 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-numerics" @@ -1838,7 +1840,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", ] [[package]] @@ -1847,14 +1858,30 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -1872,53 +1899,101 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -1940,18 +2015,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -1975,9 +2050,9 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4a518c0ea2576f4da876349d7f67a7be489297cd77c2cf9e04c2e05fcd3974" +checksum = "0f6fe2e33d02a98ee64423802e16df3de99c43e5cf5ff983767e1128b394c8ac" dependencies = [ "zune-core", ] diff --git a/Cargo.toml b/Cargo.toml index 226e7dc..07da84c 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,12 +24,13 @@ strip = true [dependencies] colored = { version = "3.0.0", git = "https://github.com/colored-rs/colored", branch = "master" } +whoami = { version = "1.5.2", default-features = false } serde = { version = "1.0.219", features = ["derive"] } image = { version = "0.25.6", optional = true } viuer = { version = "0.9.1", optional = true } unicode-segmentation = "1.12.0" strip-ansi-escapes = "0.2.1" -starship-battery = "0.10.1" +starship-battery = "0.10.2" supports-unicode = "3.0.0" csscolorparser = "0.7.2" serde_json = "1.0.140" @@ -37,7 +38,6 @@ sys-locale = "0.3.2" sysinfo = "0.35.2" bitcode = "0.6.6" minreq = "2.13.4" -whoami = "1.5.2" rayon = "1.10.0" which = "8.0.0" dirs = "6.0.0" diff --git a/src/config/deserialize.rs b/src/config/deserialize.rs index 2ff1de6..d473066 100644 --- a/src/config/deserialize.rs +++ b/src/config/deserialize.rs @@ -4,18 +4,39 @@ use crate::{ }; use serde::Deserialize; -#[derive(Deserialize, Debug)] +#[derive(Debug, Deserialize)] struct ConfigWrapper<'a> { #[serde(default)] language: super::Locale, - infos: Option>>, + info: Option>>, #[serde(default, borrow)] colors: Color<'a>, #[serde(default)] logo: super::LogoStyle<'a>, } -#[derive(Deserialize, Debug)] +#[derive(Debug, Deserialize)] +#[serde(rename_all = "snake_case")] +enum ColorBlockStyle<'a> { + Circle, + Classic, + Diamond, + Triangle, + Square, + Star, + Custom(&'a str), +} + +#[derive(Debug, Default, Deserialize)] +#[serde(rename_all = "snake_case")] +enum ColorBlockDisplay { + Normal, + Bright, + #[default] + Both, +} + +#[derive(Debug, Deserialize)] #[serde(untagged)] enum Entry<'a> { Info { @@ -26,11 +47,15 @@ enum Entry<'a> { }, Separator { separator: String, - sizing: Option, + sizing: Option, + }, + ColorBlocks { + color_block_style: ColorBlockStyle<'a>, + display: Option, }, } -#[derive(Debug, Deserialize, Default)] +#[derive(Debug, Default, Deserialize)] struct Color<'a> { #[serde(default, borrow)] header: Option>, @@ -99,10 +124,9 @@ impl<'de: 'static> serde::Deserialize<'de> for super::Config { ), }, entries: config - .infos - .map(|infos| { - infos - .into_iter() + .info + .map(|info| { + info.into_iter() .map(|info| match info { Entry::Info { kind, @@ -133,13 +157,33 @@ impl<'de: 'static> serde::Deserialize<'de> for super::Config { content: content.chars().cycle().take(size).collect(), sizing, }, - Entry::Separator { - separator: content, - sizing, - } => super::Entry::Separator { - content: content.to_owned(), + Entry::Separator { separator, sizing } => super::Entry::Separator { + content: separator, sizing: sizing.unwrap_or_default(), }, + Entry::ColorBlocks { + color_block_style, + display, + } => super::Entry::ColorBlocks { + content: match color_block_style { + ColorBlockStyle::Circle => "● ", + ColorBlockStyle::Classic => "███", + ColorBlockStyle::Diamond => "◆ ", + ColorBlockStyle::Triangle => "▲ ", + ColorBlockStyle::Square => "■ ", + ColorBlockStyle::Star => "★ ", + ColorBlockStyle::Custom(content) => content, + }, + display: match display { + Some(ColorBlockDisplay::Normal) => { + super::ColorBlockDisplay::Normal + } + Some(ColorBlockDisplay::Bright) => { + super::ColorBlockDisplay::Bright + } + _ => super::ColorBlockDisplay::Both, + }, + }, }) .collect::>() }) diff --git a/src/config/mod.rs b/src/config/mod.rs index e9483f8..872bcbd 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -44,6 +44,23 @@ impl Default for ColorOption { } } +#[derive(Debug, PartialEq, Decode, Encode)] +pub enum ColorBlockDisplay { + Normal, + Bright, + Both, +} + +impl ColorBlockDisplay { + pub fn show_normal(&self) -> bool { + self == &Self::Normal || self == &Self::Both + } + + pub fn show_bright(&self) -> bool { + self == &Self::Bright || self == &Self::Both + } +} + #[derive(Debug, Decode, Encode)] pub enum Entry<'a> { Info { @@ -57,6 +74,10 @@ pub enum Entry<'a> { content: String, sizing: SeparatorSizing, }, + ColorBlocks { + content: &'a str, + display: ColorBlockDisplay, + }, } impl<'a> Entry<'a> { @@ -82,7 +103,7 @@ impl<'a> Entry<'a> { } } -#[derive(Debug, Deserialize, Default, Clone, Copy, Decode, Encode)] +#[derive(Debug, Default, Copy, Clone, Deserialize, Decode, Encode)] #[serde(rename_all = "lowercase")] pub enum SeparatorSizing { #[default] @@ -114,7 +135,7 @@ impl<'a> Default for LogoStyle<'a> { } } -#[derive(serde::Deserialize, Default, Debug, Clone, Copy)] +#[derive(Debug, Default, Copy, Clone, Deserialize)] #[serde(rename_all = "lowercase")] enum Locale { Fr, @@ -210,5 +231,13 @@ fn default_entries(locale: Locale) -> Vec> { Entry::from_info(InfoKind::Memory, language_func, None, None), #[cfg(not(target_os = "windows"))] Entry::from_info(InfoKind::Loadavg, language_func, None, None), + Entry::Separator { + content: String::default(), + sizing: SeparatorSizing::Fixed(0), + }, + Entry::ColorBlocks { + content: "● ", + display: ColorBlockDisplay::Both, + }, ] } diff --git a/src/main.rs b/src/main.rs index 4506225..72b9c79 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use afetch::config::{Config, Entry, LogoStyle, SeparatorSizing, load_config}; use afetch::error::{ErrorType, FetchInfosError}; use afetch::logos::get_logo; use afetch::system::battery::get_battery; @@ -18,8 +19,6 @@ use rayon::iter::{IntoParallelRefIterator, ParallelIterator}; use std::fmt::Write; use supports_unicode::supports_unicode; -use afetch::config::{Config, Entry, LogoStyle, SeparatorSizing, load_config}; - fn main() -> Result<(), FetchInfosError> { let config: Config = load_config(); let language_func = get_language(config.language); @@ -122,9 +121,9 @@ fn main() -> Result<(), FetchInfosError> { } }; - let mut format_and_write = |infos: &InfoGroup| { + let mut format_and_write = |info: &InfoGroup| { let mut formatted_info = (*value).to_owned(); - for value in &infos.values { + for value in &info.values { formatted_info = formatted_info.replace(&format!("{{{}}}", value.field), &value.value); } @@ -164,6 +163,22 @@ fn main() -> Result<(), FetchInfosError> { .to_string(), ); } + Entry::ColorBlocks { content, display } => { + if display.show_normal() { + let first_colors: String = (0..8).fold(String::default(), |mut acc, i| { + write!(&mut acc, "\x1b[3{i}m{content}\x1b[0m").ok(); + acc + }); + write_entry(first_colors); + } + if display.show_bright() { + let second_colors: String = (0..8).fold(String::new(), |mut acc, i| { + write!(&mut acc, "\x1b[9{i}m{content}\x1b[0m").unwrap(); + acc + }); + write_entry(second_colors); + } + } } } diff --git a/src/system/battery.rs b/src/system/battery.rs index 5a3f1cc..893978b 100644 --- a/src/system/battery.rs +++ b/src/system/battery.rs @@ -9,7 +9,7 @@ pub fn get_battery(languages_func: fn(&str) -> &str) -> Result = Vec::new(); + let mut batteries_info: Vec = Vec::new(); while let Some(Ok(battery)) = batteries.next() { let mut info_group = InfoGroup { @@ -108,8 +108,8 @@ pub fn get_battery(languages_func: fn(&str) -> &str) -> Result &str) -> Result = Vec::new(); - let mut prevent_duplicate: HashSet<&str> = HashSet::new(); + let mut cpu_info: Vec = Vec::new(); + let mut seen: HashSet<&str> = HashSet::new(); for cpu in system.cpus() { - if prevent_duplicate.contains(cpu.brand()) { + if seen.contains(cpu.brand()) { continue; } - prevent_duplicate.insert(cpu.brand()); - cpu_infos.push(InfoGroup { + seen.insert(cpu.brand()); + cpu_info.push(InfoGroup { values: vec![ InfoValue { field: InfoField::CpuName, @@ -41,5 +41,5 @@ pub fn get_cpu(_languages_func: fn(&str) -> &str) -> Result