From 9c3c7f7c8749896baba48b360da31264f4aaebed Mon Sep 17 00:00:00 2001 From: Thomas Frans Date: Tue, 11 Mar 2025 10:06:39 +0100 Subject: [PATCH] chore: Update to edition 2024 * chore(deps): `cargo update` * chore: update to Rust edition 2024 and apply fixes Update the Rust edition and apply changes required in the new edition. Also update the Cargo manifests to reflect the edition change, and ensure changes automatically apply to workspace members in the future. * chore: format all code with `rustfmt` The new Rust edition comes with some new formatting defaults, which need to be applied since the edition was increased. * style: change suggested matches back to `if let` There has been a breaking change in Rust edition 2024 that changed the behavior of `if let` statements slightly. The new behavior is more in line with what users would expect, but could lead to problems in existing code. The automatic edition update therefore changed such `if let` statements to match statements instead. That lead to deeply nested code which was hard to reason about. This changes most of them back to regular `if let` chains, as the new behavior shouldn't cause problems for these cases. --------- Co-authored-by: Henrik Friedrichsen --- Cargo.lock | 560 ++++++++++++++++----------------------- Cargo.toml | 20 +- src/command.rs | 2 +- src/commands.rs | 6 +- src/config.rs | 2 +- src/events.rs | 2 +- src/ipc.rs | 2 +- src/library.rs | 2 +- src/main.rs | 2 +- src/model/artist.rs | 2 +- src/model/episode.rs | 2 +- src/model/playlist.rs | 2 +- src/model/show.rs | 2 +- src/model/track.rs | 2 +- src/mpris.rs | 2 +- src/spotify.rs | 29 +- src/spotify_api.rs | 47 ++-- src/spotify_worker.rs | 4 +- src/theme.rs | 2 +- src/traits.rs | 2 +- src/ui/album.rs | 2 +- src/ui/artist.rs | 2 +- src/ui/browse.rs | 2 +- src/ui/contextmenu.rs | 2 +- src/ui/cover.rs | 11 +- src/ui/help.rs | 2 +- src/ui/library.rs | 2 +- src/ui/listview.rs | 2 +- src/ui/playlist.rs | 2 +- src/ui/playlists.rs | 2 +- src/ui/queue.rs | 2 +- src/ui/search_results.rs | 4 +- src/ui/show.rs | 2 +- src/ui/statusbar.rs | 2 +- src/ui/tabbedview.rs | 2 +- xtask/Cargo.toml | 5 +- xtask/src/main.rs | 2 +- 37 files changed, 334 insertions(+), 408 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbe9850..ac47826 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" dependencies = [ "alsa-sys", - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "libc", ] @@ -139,9 +139,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "arboard" @@ -273,7 +273,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -302,13 +302,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -325,9 +325,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-lc-rs" -version = "1.12.2" +version = "1.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b7ddaa2c56a367ad27a094ad8ef4faacf8a617c2575acb2ba88949df999ca" +checksum = "5e4e8200b9a4a5801a769d50eeabc05670fec7e959a8cb7a63a93e4e519942ae" dependencies = [ "aws-lc-sys", "paste", @@ -336,9 +336,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2ddd3ada61a305e1d8bb6c005d1eaa7d14d903681edfc400406d523a9b491" +checksum = "0f9dd2e03ee80ca2822dd6ea431163d2ef259f2066a4d6ccaca6d9dcb386aa43" dependencies = [ "bindgen 0.69.5", "cc", @@ -393,7 +393,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -406,7 +406,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.96", + "syn", "which", ] @@ -416,7 +416,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -425,7 +425,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.96", + "syn", ] [[package]] @@ -436,9 +436,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block" @@ -485,9 +485,9 @@ checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" [[package]] name = "byteorder" @@ -503,9 +503,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "castaway" @@ -518,9 +518,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.10" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", @@ -653,9 +653,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.53" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24a03c8b52922d68a1589ad61032f2c1aa5a8158d2aa0d93c6e9534944bbad6" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" dependencies = [ "cc", ] @@ -866,7 +866,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "crossterm_winapi", "mio", "parking_lot", @@ -980,7 +980,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.96", + "syn", ] [[package]] @@ -991,7 +991,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1002,9 +1002,9 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] name = "data-encoding" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "der" @@ -1034,7 +1034,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1055,7 +1055,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1065,7 +1065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.96", + "syn", ] [[package]] @@ -1119,14 +1119,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "document-features" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" dependencies = [ "litrs", ] @@ -1145,9 +1145,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "encoding_rs" @@ -1181,7 +1181,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1193,7 +1193,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1214,7 +1214,7 @@ checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1235,14 +1235,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" @@ -1313,9 +1313,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -1354,7 +1354,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1453,7 +1453,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -1588,9 +1588,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", @@ -1735,9 +1735,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -1778,7 +1778,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.7", + "h2 0.4.8", "http 1.2.0", "http-body 1.0.1", "httparse", @@ -1854,11 +1854,11 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.22", + "rustls 0.23.23", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls 0.26.2", "tower-service", ] @@ -2035,7 +2035,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -2090,9 +2090,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] @@ -2138,9 +2138,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jni" @@ -2228,23 +2228,23 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libpulse-binding" -version = "2.28.2" +version = "2.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1040a6c4c4d1e9e852000f6202df1a02a4f074320de336ab21e4fd317b538" +checksum = "441092fb2d05962d74246a00c1b2f8c87c60fb6b38a5cc42227c229a702c0ce5" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.0", "libc", "libpulse-sys", - "num-derive 0.3.3", + "num-derive", "num-traits", "winapi", ] [[package]] name = "libpulse-simple-binding" -version = "2.28.1" +version = "2.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05fd6b68f33f6a251265e6ed1212dc3107caad7c5c6fdcd847b2e65ef58c308d" +checksum = "b7bebef0381c8e3e4b23cc24aaf36fab37472bece128de96f6a111efa464cfef" dependencies = [ "libpulse-binding", "libpulse-simple-sys", @@ -2253,9 +2253,9 @@ dependencies = [ [[package]] name = "libpulse-simple-sys" -version = "1.21.1" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6613b4199d8b9f0edcfb623e020cb17bbd0bee8dd21f3c7cc938de561c4152" +checksum = "3bd96888fe37ad270d16abf5e82cccca1424871cf6afa2861824d2a52758eebc" dependencies = [ "libpulse-sys", "pkg-config", @@ -2263,12 +2263,12 @@ dependencies = [ [[package]] name = "libpulse-sys" -version = "1.21.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b" +checksum = "b8febf45075a6ac7e36d0c7aa62536217f476f24456854cdad296952852b5cd2" dependencies = [ "libc", - "num-derive 0.3.3", + "num-derive", "num-traits", "pkg-config", "winapi", @@ -2280,7 +2280,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", "redox_syscall", ] @@ -2334,7 +2334,7 @@ dependencies = [ "log", "nonzero_ext", "num-bigint 0.4.6", - "num-derive 0.4.2", + "num-derive", "num-integer", "num-traits", "once_cell", @@ -2437,9 +2437,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "litrs" @@ -2508,7 +2508,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -2540,9 +2540,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", "simd-adler32", @@ -2562,9 +2562,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -2646,7 +2646,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "jni-sys", "log", "ndk-sys", @@ -2675,7 +2675,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases 0.1.1", "libc", @@ -2687,7 +2687,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -2830,17 +2830,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-derive" version = "0.4.2" @@ -2849,7 +2838,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -2922,7 +2911,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -3002,7 +2991,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2", "libc", "objc2", @@ -3018,7 +3007,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -3048,7 +3037,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2", "libc", "objc2", @@ -3060,7 +3049,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -3072,7 +3061,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "block2", "objc2", "objc2-foundation", @@ -3106,7 +3095,7 @@ dependencies = [ "jni", "ndk", "ndk-context", - "num-derive 0.4.2", + "num-derive", "num-traits", "oboe-sys", ] @@ -3122,17 +3111,17 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "openssl" -version = "0.10.70" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -3149,7 +3138,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -3160,9 +3149,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.105" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -3343,9 +3332,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "platform-dirs" @@ -3386,9 +3375,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "portaudio-rs" @@ -3428,19 +3417,19 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" +checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" dependencies = [ "proc-macro2", - "syn 2.0.96", + "syn", ] [[package]] name = "priority-queue" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" +checksum = "090ded312ed32a928fb49cb91ab4db6523ae3767225e61fbf6ceaaec3664ed26" dependencies = [ "autocfg", "equivalent", @@ -3449,18 +3438,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -3546,9 +3535,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -3571,8 +3560,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", - "zerocopy 0.8.18", + "rand_core 0.9.3", + "zerocopy 0.8.22", ] [[package]] @@ -3592,7 +3581,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.3", ] [[package]] @@ -3606,12 +3595,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.18", ] [[package]] @@ -3626,11 +3614,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -3732,7 +3720,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.7", + "h2 0.4.8", "http 1.2.0", "http-body 1.0.1", "http-body-util", @@ -3832,7 +3820,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror 2.0.11", + "thiserror 2.0.12", "url", ] @@ -3846,7 +3834,7 @@ dependencies = [ "maybe-async", "native-tls", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.12", "ureq", ] @@ -3867,7 +3855,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "thiserror 2.0.11", + "thiserror 2.0.12", ] [[package]] @@ -3888,7 +3876,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -3923,9 +3911,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.22" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9263ab4eb695e42321db096e3b8fbd715a59b154d5c88d82db2175b681ba7" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "aws-lc-rs", "log", @@ -4009,15 +3997,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -4059,7 +4047,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -4072,7 +4060,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -4116,14 +4104,14 @@ checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -4133,9 +4121,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" dependencies = [ "itoa", "serde", @@ -4143,13 +4131,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -4273,9 +4261,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "socket2" @@ -4366,7 +4354,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn", ] [[package]] @@ -4379,7 +4367,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn", ] [[package]] @@ -4474,20 +4462,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.109" +version = "2.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.96" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" dependencies = [ "proc-macro2", "quote", @@ -4517,7 +4494,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -4550,7 +4527,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -4588,9 +4565,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.16.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", "fastrand", @@ -4602,9 +4579,9 @@ dependencies = [ [[package]] name = "termion" -version = "4.0.3" +version = "4.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eaa98560e51a2cf4f0bb884d8b2098a9ea11ecf3b7078e9c68242c74cc923a7" +checksum = "6f359c854fbecc1ea65bc3683f1dcb2dce78b174a1ca7fda37acd1fff81df6ff" dependencies = [ "libc", "libredox", @@ -4623,11 +4600,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.12", ] [[package]] @@ -4638,18 +4615,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -4675,9 +4652,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -4692,15 +4669,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" dependencies = [ "num-conv", "time-core", @@ -4743,7 +4720,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -4779,11 +4756,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.22", + "rustls 0.23.23", "tokio", ] @@ -4807,11 +4784,11 @@ checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", - "rustls 0.23.22", + "rustls 0.23.23", "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls 0.26.2", "tungstenite", ] @@ -4851,15 +4828,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.23" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.0", + "winnow", ] [[package]] @@ -4908,7 +4885,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -4952,7 +4929,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.23.22", + "rustls 0.23.23", "rustls-pki-types", "sha1", "thiserror 1.0.69", @@ -4961,9 +4938,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "uds_windows" @@ -4978,9 +4955,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" @@ -5062,12 +5039,12 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.12.1" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom 0.2.15", - "rand 0.8.5", + "getrandom 0.3.1", + "rand 0.9.0", ] [[package]] @@ -5176,7 +5153,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.96", + "syn", "wasm-bindgen-shared", ] @@ -5211,7 +5188,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5244,7 +5221,7 @@ version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "rustix", "wayland-backend", "wayland-scanner", @@ -5256,7 +5233,7 @@ version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -5268,7 +5245,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -5451,7 +5428,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -5462,7 +5439,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -5473,7 +5450,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -5484,7 +5461,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] @@ -5607,36 +5584,20 @@ dependencies = [ "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_gnullvm", "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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -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]] name = "windows-version" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c12476c23a74725c539b24eae8bfc0dac4029c39cdb561d9f23616accd4ae26d" +checksum = "7bfbcc4996dd183ff1376a20ade1242da0d2dcaff83cc76710a588d24fd4c5db" dependencies = [ - "windows-targets 0.53.0", + "windows-link", ] [[package]] @@ -5657,12 +5618,6 @@ 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.42.2" @@ -5681,12 +5636,6 @@ 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.42.2" @@ -5705,24 +5654,12 @@ 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.42.2" @@ -5741,12 +5678,6 @@ 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.42.2" @@ -5765,12 +5696,6 @@ 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.42.2" @@ -5789,12 +5714,6 @@ 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.42.2" @@ -5813,26 +5732,11 @@ 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.6.26" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] @@ -5862,7 +5766,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -5960,7 +5864,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", "synstructure", ] @@ -5994,7 +5898,7 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.7.0", + "winnow", "xdg-home", "zbus_macros", "zbus_names", @@ -6010,7 +5914,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.96", + "syn", "zbus_names", "zvariant", "zvariant_utils", @@ -6018,13 +5922,13 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "519629a3f80976d89c575895b05677cbc45eaf9f70d62a364d819ba646409cc8" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "winnow 0.6.26", + "winnow", "zvariant", ] @@ -6040,11 +5944,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.18" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" +checksum = "09612fda0b63f7cb9e0af7e5916fe5a1f8cdcb066829f10f36883207628a4872" dependencies = [ - "zerocopy-derive 0.8.18", + "zerocopy-derive 0.8.22", ] [[package]] @@ -6055,38 +5959,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "zerocopy-derive" -version = "0.8.18" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" +checksum = "79f81d38d7a2ed52d8f034e62c568e111df9bf8aba2f7cf19ddc5bf7bd89d520" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", "synstructure", ] @@ -6115,47 +6019,47 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn", ] [[package]] name = "zvariant" -version = "5.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e6b9b5f1361de2d5e7d9fd1ee5f6f7fcb6060618a1f82f3472f58f2b8d4be9" +checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac" dependencies = [ "endi", "enumflags2", "serde", "static_assertions", - "winnow 0.6.26", + "winnow", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573a8dd76961957108b10f7a45bac6ab1ea3e9b7fe01aff88325dc57bb8f5c8b" +checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.96", + "syn", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd46446ea2a1f353bfda53e35f17633afa79f4fe290a611c94645c69fe96a50" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", "serde", "static_assertions", - "syn 2.0.96", - "winnow 0.6.26", + "syn", + "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index e53adf4..bfdfe59 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,14 +1,14 @@ [package] -authors = ["Henrik Friedrichsen "] -description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes." -edition = "2021" -exclude = ["images/**"] -keywords = ["spotify", "ncurses", "librespot", "terminal"] -license = "BSD-2-Clause" name = "ncspot" readme = "README.md" -repository = "https://github.com/hrkfdn/ncspot" version = "1.2.2" +description = "ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes." +exclude = ["images/**"] +keywords = ["spotify", "ncurses", "librespot", "terminal"] +authors.workspace = true +edition.workspace = true +license.workspace = true +repository.workspace = true [badges] maintenance = {status = "actively-developed"} @@ -19,6 +19,12 @@ members = [ "xtask" ] +[workspace.package] +authors = ["Henrik Friedrichsen "] +edition = "2024" +license = "BSD-2-Clause" +repository = "https://github.com/hrkfdn/ncspot" + [workspace.lints.clippy] enum_glob_use = "warn" use_self = "deny" diff --git a/src/command.rs b/src/command.rs index fe28678..e31f24d 100644 --- a/src/command.rs +++ b/src/command.rs @@ -790,7 +790,7 @@ pub fn parse(input: &str) -> Result, CommandParseError> { _ => { return Err(E::NoSuchCommand { cmd: command.into(), - }) + }); } }; commands.push(command); diff --git a/src/commands.rs b/src/commands.rs index 55b43e8..b9f79fb 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -4,9 +4,9 @@ use std::time::Duration; use crate::application::UserData; use crate::command::{ - parse, Command, GotoMode, JumpMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, TargetMode, + Command, GotoMode, JumpMode, MoveAmount, MoveMode, SeekDirection, ShiftMode, TargetMode, parse, }; -use crate::config::{user_configuration_directory, Config}; +use crate::config::{Config, user_configuration_directory}; use crate::events::EventManager; use crate::ext_traits::CursiveExt; use crate::library::Library; @@ -20,10 +20,10 @@ use crate::ui::help::HelpView; use crate::ui::layout::Layout; use crate::ui::modal::Modal; use crate::ui::search_results::SearchResultsView; +use cursive::Cursive; use cursive::event::{Event, Key}; use cursive::traits::View; use cursive::views::Dialog; -use cursive::Cursive; use log::{debug, error, info}; use ncspot::CONFIGURATION_FILE_NAME; use std::cell::RefCell; diff --git a/src/config.rs b/src/config.rs index 4c3e0c8..7dd1334 100644 --- a/src/config.rs +++ b/src/config.rs @@ -12,7 +12,7 @@ use platform_dirs::AppDirs; use crate::command::{SortDirection, SortKey}; use crate::model::playable::Playable; use crate::queue; -use crate::serialization::{Serializer, CBOR, TOML}; +use crate::serialization::{CBOR, Serializer, TOML}; pub const CACHE_VERSION: u16 = 1; pub const DEFAULT_COMMAND_KEY: char = ':'; diff --git a/src/events.rs b/src/events.rs index 9921b4b..2ebe614 100644 --- a/src/events.rs +++ b/src/events.rs @@ -1,4 +1,4 @@ -use crossbeam_channel::{unbounded, Receiver, Sender, TryIter}; +use crossbeam_channel::{Receiver, Sender, TryIter, unbounded}; use cursive::{CbSink, Cursive}; use crate::queue::QueueEvent; diff --git a/src/ipc.rs b/src/ipc.rs index dd8a845..3a179bb 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -5,8 +5,8 @@ use log::{debug, error, info}; use tokio::net::{UnixListener, UnixStream}; use tokio::runtime::Handle; use tokio::sync::watch::{Receiver, Sender}; -use tokio_stream::wrappers::WatchStream; use tokio_stream::StreamExt; +use tokio_stream::wrappers::WatchStream; use tokio_util::codec::{FramedRead, FramedWrite, LinesCodec}; use crate::events::{Event, EventManager}; diff --git a/src/library.rs b/src/library.rs index 7d988d7..5b4f81e 100644 --- a/src/library.rs +++ b/src/library.rs @@ -7,8 +7,8 @@ use std::thread; use log::{debug, error, info}; use rspotify::model::Id; -use serde::de::DeserializeOwned; use serde::Serialize; +use serde::de::DeserializeOwned; use crate::config::Config; use crate::config::{self, CACHE_VERSION}; diff --git a/src/main.rs b/src/main.rs index b8798fd..c5d0f5e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ extern crate serde; use std::{path::PathBuf, process::exit}; -use application::{setup_logging, Application}; +use application::{Application, setup_logging}; use config::set_configuration_base_path; use log::error; use ncspot::program_arguments; diff --git a/src/model/artist.rs b/src/model/artist.rs index 6bc7d35..1f588ad 100644 --- a/src/model/artist.rs +++ b/src/model/artist.rs @@ -1,8 +1,8 @@ use std::fmt; use std::sync::{Arc, RwLock}; -use rspotify::model::artist::{FullArtist, SimplifiedArtist}; use rspotify::model::Id; +use rspotify::model::artist::{FullArtist, SimplifiedArtist}; use crate::library::Library; use crate::model::playable::Playable; diff --git a/src/model/episode.rs b/src/model/episode.rs index da1e125..fac4564 100644 --- a/src/model/episode.rs +++ b/src/model/episode.rs @@ -4,8 +4,8 @@ use crate::queue::Queue; use crate::traits::{ListItem, ViewExt}; use crate::utils::ms_to_hms; use chrono::{DateTime, Utc}; -use rspotify::model::show::{FullEpisode, SimplifiedEpisode}; use rspotify::model::Id; +use rspotify::model::show::{FullEpisode, SimplifiedEpisode}; use std::fmt; use std::sync::Arc; diff --git a/src/model/playlist.rs b/src/model/playlist.rs index 63cb4bf..8fe56a7 100644 --- a/src/model/playlist.rs +++ b/src/model/playlist.rs @@ -5,8 +5,8 @@ use std::{cmp::Ordering, iter::Iterator}; use rand::{rng, seq::IteratorRandom}; use log::{debug, warn}; -use rspotify::model::playlist::{FullPlaylist, SimplifiedPlaylist}; use rspotify::model::Id; +use rspotify::model::playlist::{FullPlaylist, SimplifiedPlaylist}; use crate::model::playable::Playable; use crate::model::track::Track; diff --git a/src/model/show.rs b/src/model/show.rs index 6c29a54..e9a1957 100644 --- a/src/model/show.rs +++ b/src/model/show.rs @@ -5,8 +5,8 @@ use crate::queue::Queue; use crate::spotify::Spotify; use crate::traits::{IntoBoxedViewExt, ListItem, ViewExt}; use crate::ui::show::ShowView; -use rspotify::model::show::{FullShow, SimplifiedShow}; use rspotify::model::Id; +use rspotify::model::show::{FullShow, SimplifiedShow}; use std::fmt; use std::sync::Arc; diff --git a/src/model/track.rs b/src/model/track.rs index e680027..9c8c937 100644 --- a/src/model/track.rs +++ b/src/model/track.rs @@ -4,9 +4,9 @@ use std::sync::{Arc, RwLock}; use crate::config; use crate::utils::ms_to_hms; use chrono::{DateTime, Utc}; +use rspotify::model::Id; use rspotify::model::album::FullAlbum; use rspotify::model::track::{FullTrack, SavedTrack, SimplifiedTrack}; -use rspotify::model::Id; use crate::library::Library; use crate::model::album::Album; diff --git a/src/mpris.rs b/src/mpris.rs index 6829cff..9a002da 100644 --- a/src/mpris.rs +++ b/src/mpris.rs @@ -6,8 +6,8 @@ use std::error::Error; use std::sync::Arc; use std::time::Duration; use tokio::sync::mpsc; -use tokio_stream::wrappers::UnboundedReceiverStream; use tokio_stream::StreamExt; +use tokio_stream::wrappers::UnboundedReceiverStream; use zbus::object_server::SignalEmitter; use zbus::zvariant::{ObjectPath, Value}; use zbus::{connection, interface}; diff --git a/src/spotify.rs b/src/spotify.rs index 8d098ef..6a24d5b 100644 --- a/src/spotify.rs +++ b/src/spotify.rs @@ -13,8 +13,8 @@ use librespot_playback::audio_backend; use librespot_playback::audio_backend::SinkBuilder; use librespot_playback::config::Bitrate; use librespot_playback::config::PlayerConfig; -use librespot_playback::mixer::softmixer::SoftMixer; use librespot_playback::mixer::MixerConfig; +use librespot_playback::mixer::softmixer::SoftMixer; use librespot_playback::player::Player; use log::{debug, error, info, warn}; use tokio::sync::mpsc; @@ -167,10 +167,9 @@ impl Spotify { credentials: Credentials, ) -> Result { let librespot_cache_path = config::cache_path("librespot"); - let audio_cache_path = if let Some(false) = cfg.values().audio_cache { - None - } else { - Some(librespot_cache_path.join("files")) + let audio_cache_path = match cfg.values().audio_cache { + Some(false) => None, + _ => Some(librespot_cache_path.join("files")), }; let cache = Cache::new( Some(librespot_cache_path.clone()), @@ -206,9 +205,12 @@ impl Spotify { info!("Initializing audio backend {}", backend_name); if backend_name == "pulseaudio" { - env::set_var("PULSE_PROP_application.name", "ncspot"); - env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client"); - env::set_var("PULSE_PROP_media.role", "music"); + // TODO: Audit that the environment access only happens in single-threaded code. + unsafe { env::set_var("PULSE_PROP_application.name", "ncspot") }; + // TODO: Audit that the environment access only happens in single-threaded code. + unsafe { env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client") }; + // TODO: Audit that the environment access only happens in single-threaded code. + unsafe { env::set_var("PULSE_PROP_media.role", "music") }; } Ok(backend.1) @@ -376,10 +378,13 @@ impl Spotify { #[cfg(feature = "mpris")] fn send_mpris(&self, cmd: MprisCommand) { debug!("Sending mpris command: {:?}", cmd); - if let Some(mpris_manager) = self.mpris.lock().unwrap().as_ref() { - mpris_manager.send(cmd); - } else { - warn!("mpris context is unitialized"); + match self.mpris.lock().unwrap().as_ref() { + Some(mpris_manager) => { + mpris_manager.send(cmd); + } + _ => { + warn!("mpris context is unitialized"); + } } } diff --git a/src/spotify_api.rs b/src/spotify_api.rs index 7a030bc..b2f3b64 100644 --- a/src/spotify_api.rs +++ b/src/spotify_api.rs @@ -14,7 +14,7 @@ use rspotify::model::{ PlaylistResult, PrivateUser, Recommendations, SavedAlbum, SavedTrack, SearchResult, SearchType, Show, ShowId, SimplifiedTrack, TrackId, UserId, }; -use rspotify::{prelude::*, AuthCodeSpotify, ClientError, ClientResult, Config, Token}; +use rspotify::{AuthCodeSpotify, ClientError, ClientResult, Config, Token, prelude::*}; use tokio::sync::mpsc; use tokio::task::JoinHandle; @@ -101,21 +101,27 @@ impl WebApi { channel.send(cmd).unwrap(); let api_token = self.api.token.clone(); let api_token_expiration = self.token_expiration.clone(); - Some(ASYNC_RUNTIME.get().unwrap().spawn_blocking(move || { - if let Ok(Some(token)) = token_rx.recv() { - *api_token.lock().unwrap() = Some(Token { - access_token: token.access_token, - expires_in: chrono::Duration::from_std(token.expires_in).unwrap(), - scopes: HashSet::from_iter(token.scopes), - expires_at: None, - refresh_token: None, - }); - *api_token_expiration.write().unwrap() = - Utc::now() + ChronoDuration::from_std(token.expires_in).unwrap(); - } else { - error!("Failed to update token"); - } - })) + Some( + ASYNC_RUNTIME + .get() + .unwrap() + .spawn_blocking(move || match token_rx.recv() { + Ok(Some(token)) => { + *api_token.lock().unwrap() = Some(Token { + access_token: token.access_token, + expires_in: chrono::Duration::from_std(token.expires_in).unwrap(), + scopes: HashSet::from_iter(token.scopes), + expires_at: None, + refresh_token: None, + }); + *api_token_expiration.write().unwrap() = + Utc::now() + ChronoDuration::from_std(token.expires_in).unwrap(); + } + _ => { + error!("Failed to update token"); + } + }), + ) } else { panic!("worker channel is not set"); } @@ -131,8 +137,8 @@ impl WebApi { Ok(v) => Some(v), Err(ClientError::Http(error)) => { debug!("http error: {:?}", error); - if let HttpError::StatusCode(response) = error.as_ref() { - match response.status() { + match error.as_ref() { + HttpError::StatusCode(response) => match response.status() { 429 => { let waiting_duration = response .header("Retry-After") @@ -150,9 +156,8 @@ impl WebApi { error!("unhandled api error: {:?}", response); None } - } - } else { - None + }, + _ => None, } } Err(e) => { diff --git a/src/spotify_worker.rs b/src/spotify_worker.rs index 929473d..76d4653 100644 --- a/src/spotify_worker.rs +++ b/src/spotify_worker.rs @@ -10,14 +10,14 @@ use librespot_core::token::Token; use librespot_playback::mixer::Mixer; use librespot_playback::player::{Player, PlayerEvent as LibrespotPlayerEvent}; use log::{debug, error, info, warn}; -use std::sync::mpsc::Sender; use std::sync::Arc; +use std::sync::mpsc::Sender; use std::time::Duration; use std::{pin::Pin, time::SystemTime}; use tokio::sync::mpsc; use tokio::time; -use tokio_stream::wrappers::UnboundedReceiverStream; use tokio_stream::StreamExt; +use tokio_stream::wrappers::UnboundedReceiverStream; #[derive(Debug)] pub(crate) enum WorkerCommand { diff --git a/src/theme.rs b/src/theme.rs index a25c62a..09fae10 100644 --- a/src/theme.rs +++ b/src/theme.rs @@ -20,7 +20,7 @@ use crate::config::ConfigTheme; /// load_color!(config_theme, primary, TerminalDefault) /// ``` macro_rules! load_color { - ( $theme: expr, $member: ident, $default: expr ) => { + ( $theme: expr_2021, $member: ident, $default: expr_2021 ) => { $theme .as_ref() .and_then(|t| t.$member.clone()) diff --git a/src/traits.rs b/src/traits.rs index 0578023..3f25346 100644 --- a/src/traits.rs +++ b/src/traits.rs @@ -1,8 +1,8 @@ use std::sync::Arc; +use cursive::Cursive; use cursive::view::{View, ViewWrapper}; use cursive::views::NamedView; -use cursive::Cursive; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/album.rs b/src/ui/album.rs index 8e8480d..8767487 100644 --- a/src/ui/album.rs +++ b/src/ui/album.rs @@ -1,7 +1,7 @@ use std::sync::{Arc, RwLock}; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/artist.rs b/src/ui/artist.rs index e062817..6694ebf 100644 --- a/src/ui/artist.rs +++ b/src/ui/artist.rs @@ -1,8 +1,8 @@ use std::sync::{Arc, RwLock}; use std::thread; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use rspotify::model::AlbumType; use crate::command::Command; diff --git a/src/ui/browse.rs b/src/ui/browse.rs index 7ee7281..dee943e 100644 --- a/src/ui/browse.rs +++ b/src/ui/browse.rs @@ -1,7 +1,7 @@ use std::sync::Arc; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/contextmenu.rs b/src/ui/contextmenu.rs index 2c4d005..ba7c9c2 100644 --- a/src/ui/contextmenu.rs +++ b/src/ui/contextmenu.rs @@ -1,8 +1,8 @@ use std::sync::Arc; +use cursive::Cursive; use cursive::view::{Margins, ViewWrapper}; use cursive::views::{Dialog, NamedView, ScrollView, SelectView}; -use cursive::Cursive; use crate::commands::CommandResult; use crate::ext_traits::SelectViewExt; diff --git a/src/ui/cover.rs b/src/ui/cover.rs index f5827c3..4112eba 100644 --- a/src/ui/cover.rs +++ b/src/ui/cover.rs @@ -7,7 +7,7 @@ use std::sync::{Arc, RwLock}; use cursive::theme::{ColorStyle, ColorType, PaletteColor}; use cursive::{Cursive, Printer, Vec2, View}; -use ioctl_rs::{ioctl, TIOCGWINSZ}; +use ioctl_rs::{TIOCGWINSZ, ioctl}; use log::{debug, error}; use crate::command::{Command, GotoMode}; @@ -117,9 +117,12 @@ impl CoverView { draw_offset.x += (draw_size.x - size.x) / 2; draw_offset.y += (draw_size.y - size.y) - (draw_size.y - size.y) / 2; - let cmd = format!("{{\"action\":\"add\",\"scaler\":\"fit_contain\",\"identifier\":\"cover\",\"x\":{},\"y\":{},\"width\":{},\"height\":{},\"path\":\"{}\"}}\n", - draw_offset.x, draw_offset.y, - size.x, size.y, + let cmd = format!( + "{{\"action\":\"add\",\"scaler\":\"fit_contain\",\"identifier\":\"cover\",\"x\":{},\"y\":{},\"width\":{},\"height\":{},\"path\":\"{}\"}}\n", + draw_offset.x, + draw_offset.y, + size.x, + size.y, path.to_str().unwrap() ); diff --git a/src/ui/help.rs b/src/ui/help.rs index 02aa80a..8f6f34e 100644 --- a/src/ui/help.rs +++ b/src/ui/help.rs @@ -1,10 +1,10 @@ use std::collections::HashMap; +use cursive::Cursive; use cursive::theme::Effect; use cursive::utils::markup::StyledString; use cursive::view::ViewWrapper; use cursive::views::{ScrollView, TextView}; -use cursive::Cursive; use ncspot::CONFIGURATION_FILE_NAME; use crate::command::{Command, MoveAmount, MoveMode}; diff --git a/src/ui/library.rs b/src/ui/library.rs index 3a63a6f..c7efda8 100644 --- a/src/ui/library.rs +++ b/src/ui/library.rs @@ -1,7 +1,7 @@ use std::sync::Arc; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use strum::IntoEnumIterator; use crate::command::Command; diff --git a/src/ui/listview.rs b/src/ui/listview.rs index 8712297..fadec80 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -1,6 +1,6 @@ use cursive::view::scroll::Scroller; use log::info; -use std::cmp::{max, min, Ordering}; +use std::cmp::{Ordering, max, min}; use std::sync::{Arc, RwLock}; use cursive::align::HAlign; diff --git a/src/ui/playlist.rs b/src/ui/playlist.rs index 73752a7..2b510cf 100644 --- a/src/ui/playlist.rs +++ b/src/ui/playlist.rs @@ -1,7 +1,7 @@ use std::sync::{Arc, RwLock}; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/playlists.rs b/src/ui/playlists.rs index fcf449e..8681d33 100644 --- a/src/ui/playlists.rs +++ b/src/ui/playlists.rs @@ -1,8 +1,8 @@ use std::sync::Arc; +use cursive::Cursive; use cursive::view::{Margins, ViewWrapper}; use cursive::views::Dialog; -use cursive::Cursive; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/queue.rs b/src/ui/queue.rs index 267d01b..4e7c3e8 100644 --- a/src/ui/queue.rs +++ b/src/ui/queue.rs @@ -1,7 +1,7 @@ +use cursive::Cursive; use cursive::traits::{Nameable, Resizable}; use cursive::view::{Margins, ViewWrapper}; use cursive::views::{Dialog, EditView, ScrollView, SelectView}; -use cursive::Cursive; use std::cmp::min; use std::sync::Arc; diff --git a/src/ui/search_results.rs b/src/ui/search_results.rs index 0a604b6..82eecd6 100644 --- a/src/ui/search_results.rs +++ b/src/ui/search_results.rs @@ -16,10 +16,10 @@ use crate::traits::{ListItem, ViewExt}; use crate::ui::listview::ListView; use crate::ui::pagination::Pagination; use crate::ui::tabbedview::TabbedView; -use cursive::view::ViewWrapper; use cursive::Cursive; -use rspotify::model::search::SearchResult; +use cursive::view::ViewWrapper; use rspotify::model::SearchType; +use rspotify::model::search::SearchResult; use std::sync::{Arc, RwLock}; pub struct SearchResultsView { diff --git a/src/ui/show.rs b/src/ui/show.rs index aab8de8..19ab5ce 100644 --- a/src/ui/show.rs +++ b/src/ui/show.rs @@ -1,7 +1,7 @@ use std::sync::Arc; -use cursive::view::ViewWrapper; use cursive::Cursive; +use cursive::view::ViewWrapper; use crate::command::Command; use crate::commands::CommandResult; diff --git a/src/ui/statusbar.rs b/src/ui/statusbar.rs index 6169f73..e4800ba 100644 --- a/src/ui/statusbar.rs +++ b/src/ui/statusbar.rs @@ -1,11 +1,11 @@ use std::sync::Arc; +use cursive::Printer; use cursive::align::HAlign; use cursive::event::{Event, EventResult, MouseButton, MouseEvent}; use cursive::theme::{ColorStyle, ColorType, PaletteColor}; use cursive::traits::View; use cursive::vec::Vec2; -use cursive::Printer; use unicode_width::UnicodeWidthStr; use crate::library::Library; diff --git a/src/ui/tabbedview.rs b/src/ui/tabbedview.rs index 26884fd..89fbad0 100644 --- a/src/ui/tabbedview.rs +++ b/src/ui/tabbedview.rs @@ -1,12 +1,12 @@ use std::cmp::min; use cursive::{ + Cursive, Printer, Vec2, View, align::HAlign, event::{Event, EventResult, MouseButton, MouseEvent}, theme::ColorStyle, view::Nameable, views::NamedView, - Cursive, Printer, Vec2, View, }; use unicode_width::UnicodeWidthStr; diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 8f9d11f..ecc57d0 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -3,7 +3,10 @@ [package] name = "xtask" version = "0.1.0" -edition = "2021" +authors.workspace = true +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] clap_mangen = "0.2.26" diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 1751c51..1f9d993 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -1,9 +1,9 @@ use std::path::PathBuf; use std::{env, fs}; +use clap::ArgMatches; use clap::builder::PathBufValueParser; use clap::error::{Error, ErrorKind}; -use clap::ArgMatches; use clap_complete::Shell; use ncspot::{AUTHOR, BIN_NAME};