diff --git a/.gitignore b/.gitignore
index 41e108c..bf4ca84 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,8 +3,3 @@
.sqlx
.env
data.db
-/flamegraph.svg
-/.zed/
-/perf.data
-/perf.data.old
-.aider*
diff --git a/Cargo.lock b/Cargo.lock
index c671c99..4e60530 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,9 +4,9 @@ version = 4
[[package]]
name = "ab_glyph"
-version = "0.2.32"
+version = "0.2.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2"
+checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d"
dependencies = [
"ab_glyph_rasterizer",
"owned_ttf_parser",
@@ -18,91 +18,11 @@ version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
-[[package]]
-name = "accesskit"
-version = "0.16.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-
-[[package]]
-name = "accesskit_atspi_common"
-version = "0.9.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "accesskit_consumer",
- "atspi-common",
- "serde",
- "thiserror 1.0.69",
- "zvariant 3.15.2",
-]
-
-[[package]]
-name = "accesskit_consumer"
-version = "0.24.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "immutable-chunkmap",
-]
-
-[[package]]
-name = "accesskit_macos"
-version = "0.17.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "accesskit_consumer",
- "objc2 0.5.2",
- "objc2-app-kit 0.2.2",
- "objc2-foundation 0.2.2",
- "once_cell",
-]
-
-[[package]]
-name = "accesskit_unix"
-version = "0.12.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "accesskit_atspi_common",
- "atspi",
- "futures-lite 1.13.0",
- "serde",
- "tokio",
- "tokio-stream",
- "zbus 3.15.2",
-]
-
-[[package]]
-name = "accesskit_windows"
-version = "0.22.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "accesskit_consumer",
- "paste",
- "static_assertions",
- "windows 0.54.0",
-]
-
-[[package]]
-name = "accesskit_winit"
-version = "0.22.0"
-source = "git+https://github.com/wash2/accesskit?tag=iced-xdg-surface-0.13-rc#c46afc041b1968a5af0186fa6aba3ea9cf24c8c3"
-dependencies = [
- "accesskit",
- "accesskit_macos",
- "accesskit_unix",
- "accesskit_windows",
- "raw-window-handle",
- "winit",
-]
-
[[package]]
name = "addr2line"
-version = "0.25.1"
+version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
+checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
dependencies = [
"gimli",
]
@@ -156,12 +76,6 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
-[[package]]
-name = "almost"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14"
-
[[package]]
name = "alsa"
version = "0.9.1"
@@ -169,7 +83,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43"
dependencies = [
"alsa-sys",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cfg-if",
"libc",
]
@@ -191,14 +105,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046"
dependencies = [
"android-properties",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cc",
"cesu8",
"jni",
"jni-sys",
"libc",
"log",
- "ndk",
+ "ndk 0.9.0",
"ndk-context",
"ndk-sys 0.6.0+11769913",
"num_enum",
@@ -211,6 +125,12 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
[[package]]
name = "android_system_properties"
version = "0.1.5"
@@ -222,9 +142,9 @@ dependencies = [
[[package]]
name = "anstream"
-version = "0.6.21"
+version = "0.6.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a"
+checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192"
dependencies = [
"anstyle",
"anstyle-parse",
@@ -237,9 +157,9 @@ dependencies = [
[[package]]
name = "anstyle"
-version = "1.0.13"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
+checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"
[[package]]
name = "anstyle-parse"
@@ -272,24 +192,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.100"
+version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
-
-[[package]]
-name = "apply"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9"
-
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
+checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100"
[[package]]
name = "arbitrary"
@@ -297,12 +202,6 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
-[[package]]
-name = "arc-swap"
-version = "1.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
-
[[package]]
name = "arg_enum_proc_macro"
version = "0.3.4"
@@ -343,43 +242,39 @@ dependencies = [
[[package]]
name = "ashpd"
-version = "0.11.0"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df"
+checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81"
dependencies = [
+ "async-fs 2.1.3",
+ "async-net",
"enumflags2",
"futures-channel",
"futures-util",
- "rand 0.9.2",
- "raw-window-handle",
+ "once_cell",
+ "rand",
"serde",
"serde_repr",
- "tokio",
"url",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "zbus 5.11.0",
+ "zbus 3.15.2",
]
[[package]]
name = "ashpd"
-version = "0.12.0"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0986d5b4f0802160191ad75f8d33ada000558757db3defb70299ca95d9fcbd"
+checksum = "de3d60bee1a1d38c2077030f4788e1b4e31058d2e79a8cfc8f2b440bd44db290"
dependencies = [
+ "async-fs 2.1.3",
+ "async-net",
"enumflags2",
"futures-channel",
"futures-util",
- "rand 0.9.2",
+ "rand",
"serde",
"serde_repr",
- "tokio",
"url",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "zbus 5.11.0",
+ "zbus 5.9.0",
]
[[package]]
@@ -404,6 +299,17 @@ dependencies = [
"pin-project-lite",
]
+[[package]]
+name = "async-channel"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
[[package]]
name = "async-channel"
version = "2.5.0"
@@ -418,9 +324,9 @@ dependencies = [
[[package]]
name = "async-executor"
-version = "1.13.3"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8"
+checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa"
dependencies = [
"async-task",
"concurrent-queue",
@@ -430,6 +336,44 @@ dependencies = [
"slab",
]
+[[package]]
+name = "async-fs"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "blocking",
+ "futures-lite 1.13.0",
+]
+
+[[package]]
+name = "async-fs"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09f7e37c0ed80b2a977691c47dae8625cfb21e205827106c64f7c588766b2e50"
+dependencies = [
+ "async-lock 3.4.1",
+ "blocking",
+ "futures-lite 2.6.1",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
+dependencies = [
+ "async-channel 2.5.0",
+ "async-executor",
+ "async-io 2.5.0",
+ "async-lock 3.4.1",
+ "blocking",
+ "futures-lite 2.6.1",
+ "once_cell",
+]
+
[[package]]
name = "async-io"
version = "1.13.0"
@@ -452,20 +396,20 @@ dependencies = [
[[package]]
name = "async-io"
-version = "2.6.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
+checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca"
dependencies = [
- "autocfg",
+ "async-lock 3.4.1",
"cfg-if",
"concurrent-queue",
"futures-io",
"futures-lite 2.6.1",
"parking",
- "polling 3.11.0",
- "rustix 1.1.2",
+ "polling 3.10.0",
+ "rustix 1.0.8",
"slab",
- "windows-sys 0.61.2",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -488,6 +432,17 @@ dependencies = [
"pin-project-lite",
]
+[[package]]
+name = "async-net"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7"
+dependencies = [
+ "async-io 2.5.0",
+ "blocking",
+ "futures-lite 2.6.1",
+]
+
[[package]]
name = "async-process"
version = "1.8.1"
@@ -507,12 +462,12 @@ dependencies = [
[[package]]
name = "async-process"
-version = "2.5.0"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
+checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00"
dependencies = [
- "async-channel",
- "async-io 2.6.0",
+ "async-channel 2.5.0",
+ "async-io 2.5.0",
"async-lock 3.4.1",
"async-signal",
"async-task",
@@ -520,7 +475,7 @@ dependencies = [
"cfg-if",
"event-listener 5.4.1",
"futures-lite 2.6.1",
- "rustix 1.1.2",
+ "rustix 1.0.8",
]
[[package]]
@@ -536,20 +491,46 @@ dependencies = [
[[package]]
name = "async-signal"
-version = "0.2.13"
+version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c"
+checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1"
dependencies = [
- "async-io 2.6.0",
+ "async-io 2.5.0",
"async-lock 3.4.1",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
- "rustix 1.1.2",
+ "rustix 1.0.8",
"signal-hook-registry",
"slab",
- "windows-sys 0.61.2",
+ "windows-sys 0.60.2",
+]
+
+[[package]]
+name = "async-std"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b"
+dependencies = [
+ "async-channel 1.9.0",
+ "async-global-executor",
+ "async-io 2.5.0",
+ "async-lock 3.4.1",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite 2.6.1",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
]
[[package]]
@@ -590,76 +571,6 @@ version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
-[[package]]
-name = "atomicwrites"
-version = "0.4.2"
-source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
-dependencies = [
- "rustix 0.38.44",
- "tempfile",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "atspi"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
-dependencies = [
- "atspi-common",
- "atspi-connection",
- "atspi-proxies",
-]
-
-[[package]]
-name = "atspi-common"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
-dependencies = [
- "enumflags2",
- "serde",
- "static_assertions",
- "zbus 3.15.2",
- "zbus_names 2.6.1",
- "zvariant 3.15.2",
-]
-
-[[package]]
-name = "atspi-connection"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
-dependencies = [
- "atspi-common",
- "atspi-proxies",
- "futures-lite 1.13.0",
- "zbus 3.15.2",
-]
-
-[[package]]
-name = "atspi-proxies"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
-dependencies = [
- "atspi-common",
- "serde",
- "zbus 3.15.2",
-]
-
-[[package]]
-name = "auto_enums"
-version = "0.8.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c170965892137a3a9aeb000b4524aa3cc022a310e709d848b6e1cdce4ab4781"
-dependencies = [
- "derive_utils",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "autocfg"
version = "1.5.0"
@@ -691,9 +602,9 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.76"
+version = "0.3.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
+checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
dependencies = [
"addr2line",
"cfg-if",
@@ -701,7 +612,7 @@ dependencies = [
"miniz_oxide",
"object",
"rustc-demangle",
- "windows-link",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -732,21 +643,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
[[package]]
-name = "basic-toml"
-version = "0.1.10"
+name = "bincode"
+version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
dependencies = [
"serde",
]
[[package]]
-name = "bindgen"
-version = "0.71.1"
+name = "bincode"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3"
+checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740"
dependencies = [
- "bitflags 2.9.4",
+ "bincode_derive",
+ "serde",
+ "unty",
+]
+
+[[package]]
+name = "bincode_derive"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09"
+dependencies = [
+ "virtue",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.72.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f72209734318d0b619a5e0f5129918b848c416e122a3c4ce054e03cb87b726f"
+dependencies = [
+ "bitflags 2.9.2",
"cexpr",
"clang-sys",
"itertools 0.13.0",
@@ -760,24 +691,24 @@ dependencies = [
[[package]]
name = "bit-set"
-version = "0.6.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f"
+checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
dependencies = [
"bit-vec",
]
[[package]]
name = "bit-vec"
-version = "0.7.0"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22"
+checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
[[package]]
name = "bit_field"
-version = "0.10.3"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6"
+checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]]
name = "bitflags"
@@ -787,9 +718,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.9.4"
+version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
+checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29"
dependencies = [
"serde",
]
@@ -821,16 +752,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
dependencies = [
- "objc2 0.5.2",
-]
-
-[[package]]
-name = "block2"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
-dependencies = [
- "objc2 0.6.3",
+ "objc2",
]
[[package]]
@@ -839,24 +761,13 @@ version = "1.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
dependencies = [
- "async-channel",
+ "async-channel 2.5.0",
"async-task",
"futures-io",
"futures-lite 2.6.1",
"piper",
]
-[[package]]
-name = "bstr"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4"
-dependencies = [
- "memchr",
- "regex-automata",
- "serde",
-]
-
[[package]]
name = "built"
version = "0.7.7"
@@ -869,26 +780,20 @@ version = "3.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
-[[package]]
-name = "by_address"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06"
-
[[package]]
name = "bytemuck"
-version = "1.24.0"
+version = "1.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
+checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677"
dependencies = [
"bytemuck_derive",
]
[[package]]
name = "bytemuck_derive"
-version = "1.10.2"
+version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
+checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29"
dependencies = [
"proc-macro2",
"quote",
@@ -919,58 +824,43 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"log",
- "polling 3.11.0",
+ "polling 3.10.0",
"rustix 0.38.44",
"slab",
"thiserror 1.0.69",
]
-[[package]]
-name = "calloop"
-version = "0.14.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb9f6e1368bd4621d2c86baa7e37de77a938adf5221e5dd3d6133340101b309e"
-dependencies = [
- "bitflags 2.9.4",
- "polling 3.11.0",
- "rustix 1.1.2",
- "slab",
- "tracing",
-]
-
[[package]]
name = "calloop-wayland-source"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
dependencies = [
- "calloop 0.13.0",
+ "calloop",
"rustix 0.38.44",
"wayland-backend",
"wayland-client",
]
[[package]]
-name = "calloop-wayland-source"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa"
+name = "cargo-hot-protocol"
+version = "0.1.0"
+source = "git+https://github.com/hecrj/cargo-hot.git?rev=b8dc518b8640928178a501257e353b73bc06cf47#b8dc518b8640928178a501257e353b73bc06cf47"
dependencies = [
- "calloop 0.14.3",
- "rustix 1.1.2",
- "wayland-backend",
- "wayland-client",
+ "anyhow",
+ "bincode 2.0.1",
+ "log",
+ "subsecond",
]
[[package]]
name = "cc"
-version = "1.2.41"
+version = "1.2.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7"
+checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f"
dependencies = [
- "find-msvc-tools",
"jobserver",
"libc",
"shlex",
@@ -1003,9 +893,9 @@ dependencies = [
[[package]]
name = "cfg-expr"
-version = "0.20.3"
+version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a2c5f3bf25ec225351aa1c8e230d04d880d3bd89dea133537dafad4ae291e5c"
+checksum = "c8d458d63f0f0f482c8da9b7c8b76c21bd885a02056cc94c6404d861ca2b8206"
dependencies = [
"smallvec",
"target-lexicon 0.13.2",
@@ -1031,15 +921,13 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chrono"
-version = "0.4.42"
+version = "0.4.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
+checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
dependencies = [
+ "android-tzdata",
"iana-time-zone",
- "js-sys",
"num-traits",
- "serde",
- "wasm-bindgen",
"windows-link",
]
@@ -1056,9 +944,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.49"
+version = "4.5.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f"
+checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
dependencies = [
"clap_builder",
"clap_derive",
@@ -1066,9 +954,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.49"
+version = "4.5.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730"
+checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
dependencies = [
"anstream",
"anstyle",
@@ -1079,9 +967,9 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.5.49"
+version = "4.5.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
+checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
dependencies = [
"heck 0.5.0",
"proc-macro2",
@@ -1091,9 +979,15 @@ dependencies = [
[[package]]
name = "clap_lex"
-version = "0.7.6"
+version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
+checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
+
+[[package]]
+name = "claxon"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
[[package]]
name = "clipboard-win"
@@ -1106,71 +1000,43 @@ dependencies = [
[[package]]
name = "clipboard_macos"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b7f4aaa047ba3c3630b080bb9860894732ff23e2aee290a418909aa6d5df38f"
dependencies = [
- "objc",
- "objc-foundation",
- "objc_id",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
]
[[package]]
name = "clipboard_wayland"
version = "0.2.2"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
dependencies = [
- "dnd",
- "mime 0.1.0",
"smithay-clipboard",
]
[[package]]
name = "clipboard_x11"
version = "0.4.2"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
dependencies = [
"thiserror 1.0.69",
"x11rb",
]
-[[package]]
-name = "cocoa"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "cocoa-foundation",
- "core-foundation",
- "core-graphics",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "core-foundation",
- "core-graphics-types",
- "libc",
- "objc",
-]
-
[[package]]
name = "codespan-reporting"
-version = "0.11.1"
+version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
dependencies = [
+ "serde",
"termcolor",
- "unicode-width 0.1.14",
+ "unicode-width 0.2.1",
]
[[package]]
@@ -1191,37 +1057,6 @@ version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9226dbc05df4fb986f48d730b001532580883c4c06c5d1c213f4b34c1c157178"
-[[package]]
-name = "com"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
-dependencies = [
- "com_macros",
-]
-
-[[package]]
-name = "com_macros"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
-dependencies = [
- "com_macros_support",
- "proc-macro2",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "com_macros_support"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
[[package]]
name = "combine"
version = "4.6.7"
@@ -1257,6 +1092,16 @@ dependencies = [
"libc",
]
+[[package]]
+name = "core-foundation"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
[[package]]
name = "core-foundation-sys"
version = "0.8.7"
@@ -1270,8 +1115,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
dependencies = [
"bitflags 1.3.2",
- "core-foundation",
- "core-graphics-types",
+ "core-foundation 0.9.4",
+ "core-graphics-types 0.1.3",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
+dependencies = [
+ "bitflags 2.9.2",
+ "core-foundation 0.10.1",
+ "core-graphics-types 0.2.0",
"foreign-types",
"libc",
]
@@ -1283,195 +1141,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
dependencies = [
"bitflags 1.3.2",
- "core-foundation",
+ "core-foundation 0.9.4",
"libc",
]
[[package]]
-name = "core-text"
-version = "20.1.0"
+name = "core-graphics-types"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5"
+checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
dependencies = [
- "core-foundation",
- "core-graphics",
- "foreign-types",
+ "bitflags 2.9.2",
+ "core-foundation 0.10.1",
"libc",
]
-[[package]]
-name = "core_maths"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30"
-dependencies = [
- "libm",
-]
-
[[package]]
name = "coreaudio-rs"
-version = "0.13.0"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aae284fbaf7d27aa0e292f7677dfbe26503b0d555026f702940805a630eac17"
+checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace"
dependencies = [
"bitflags 1.3.2",
- "libc",
- "objc2-audio-toolbox",
- "objc2-core-audio",
- "objc2-core-audio-types",
- "objc2-core-foundation",
+ "core-foundation-sys",
+ "coreaudio-sys",
]
[[package]]
-name = "cosmic-client-toolkit"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4"
+name = "coreaudio-sys"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6"
dependencies = [
- "bitflags 2.9.4",
- "cosmic-protocols",
- "libc",
- "smithay-client-toolkit 0.20.0",
- "wayland-client",
- "wayland-protocols",
-]
-
-[[package]]
-name = "cosmic-config"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
-dependencies = [
- "atomicwrites",
- "cosmic-config-derive",
- "cosmic-settings-daemon",
- "dirs 6.0.0",
- "futures-util",
- "iced_futures",
- "known-folders",
- "notify",
- "ron 0.11.0",
- "serde",
- "tokio",
- "tracing",
- "xdg 3.0.0",
- "zbus 5.11.0",
-]
-
-[[package]]
-name = "cosmic-config-derive"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
-dependencies = [
- "quote",
- "syn 2.0.106",
-]
-
-[[package]]
-name = "cosmic-freedesktop-icons"
-version = "0.3.0"
-source = "git+https://github.com/pop-os/freedesktop-icons#8a05c322c482ff3c69cf34bacfee98907ac45307"
-dependencies = [
- "dirs 5.0.1",
- "ini_core",
- "memmap2 0.9.8",
- "thiserror 2.0.17",
- "tracing",
- "xdg 2.5.2",
-]
-
-[[package]]
-name = "cosmic-protocols"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=d0e95be#d0e95be25e423cfe523b11111a3666ed7aaf0dc4"
-dependencies = [
- "bitflags 2.9.4",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-protocols-wlr",
- "wayland-scanner",
- "wayland-server",
-]
-
-[[package]]
-name = "cosmic-settings-config"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-settings-daemon#68331387e4336c37ce2300bea8638257feab449a"
-dependencies = [
- "cosmic-config",
- "ron 0.11.0",
- "serde",
- "serde_with",
- "tracing",
- "xkbcommon 0.9.0",
-]
-
-[[package]]
-name = "cosmic-settings-daemon"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/dbus-settings-bindings#37cbe4e8c165428178be23a14bd37f19a19d3757"
-dependencies = [
- "zbus 5.11.0",
+ "bindgen",
]
[[package]]
name = "cosmic-text"
version = "0.14.2"
-source = "git+https://github.com/pop-os/cosmic-text.git#646e04389e1c2e03a85e61946ace06d8fada1fa1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8"
dependencies = [
- "bitflags 2.9.4",
- "fontdb 0.23.0",
- "harfrust",
- "linebender_resource_handle",
+ "bitflags 2.9.2",
+ "fontdb 0.16.2",
"log",
"rangemap",
"rustc-hash 1.1.0",
+ "rustybuzz",
"self_cell",
- "skrifa",
"smol_str",
"swash",
"sys-locale",
+ "ttf-parser 0.21.1",
"unicode-bidi",
"unicode-linebreak",
"unicode-script",
"unicode-segmentation",
]
-[[package]]
-name = "cosmic-theme"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
-dependencies = [
- "almost",
- "cosmic-config",
- "csscolorparser",
- "dirs 6.0.0",
- "palette",
- "ron 0.11.0",
- "serde",
- "serde_json",
- "thiserror 2.0.17",
-]
-
[[package]]
name = "cpal"
-version = "0.16.0"
+version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbd307f43cc2a697e2d1f8bc7a1d824b5269e052209e28883e5bc04d095aaa3f"
+checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779"
dependencies = [
"alsa",
+ "core-foundation-sys",
"coreaudio-rs",
"dasp_sample",
"jni",
"js-sys",
"libc",
"mach2",
- "ndk",
+ "ndk 0.8.0",
"ndk-context",
- "num-derive",
- "num-traits",
- "objc2-audio-toolbox",
- "objc2-core-audio",
- "objc2-core-audio-types",
+ "oboe",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
@@ -1563,6 +1307,18 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
+[[package]]
+name = "cryoglyph"
+version = "0.1.0"
+source = "git+https://github.com/iced-rs/cryoglyph.git?rev=453cedec0d2ec563bd7fa87e84a2319bcebb1ba3#453cedec0d2ec563bd7fa87e84a2319bcebb1ba3"
+dependencies = [
+ "cosmic-text",
+ "etagere",
+ "lru",
+ "rustc-hash 2.1.1",
+ "wgpu",
+]
+
[[package]]
name = "crypto-common"
version = "0.1.6"
@@ -1573,22 +1329,6 @@ dependencies = [
"typenum",
]
-[[package]]
-name = "css-color"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a"
-
-[[package]]
-name = "csscolorparser"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fda6aace1fbef3aa217b27f4c8d7d071ef2a70a5ca51050b1f17d40299d3f16"
-dependencies = [
- "phf",
- "serde",
-]
-
[[package]]
name = "ctor-lite"
version = "0.1.0"
@@ -1602,14 +1342,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f"
[[package]]
-name = "d3d12"
-version = "22.0.0"
+name = "dark-light"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017"
+checksum = "18e1a09f280e29a8b00bc7e81eca5ac87dca0575639c9422a5fa25a07bb884b8"
dependencies = [
- "bitflags 2.9.4",
- "libloading",
- "winapi",
+ "ashpd 0.10.3",
+ "async-std",
+ "objc2",
+ "objc2-foundation",
+ "web-sys",
+ "winreg",
]
[[package]]
@@ -1618,18 +1361,8 @@ version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
dependencies = [
- "darling_core 0.20.11",
- "darling_macro 0.20.11",
-]
-
-[[package]]
-name = "darling"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
-dependencies = [
- "darling_core 0.21.3",
- "darling_macro 0.21.3",
+ "darling_core",
+ "darling_macro",
]
[[package]]
@@ -1646,38 +1379,13 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "darling_core"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.106",
-]
-
[[package]]
name = "darling_macro"
version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
- "darling_core 0.20.11",
- "quote",
- "syn 2.0.106",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
-dependencies = [
- "darling_core 0.21.3",
+ "darling_core",
"quote",
"syn 2.0.106",
]
@@ -1690,9 +1398,9 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
[[package]]
name = "data-url"
-version = "0.3.2"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376"
+checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
[[package]]
name = "der"
@@ -1707,12 +1415,11 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.5.4"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071"
+checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
dependencies = [
"powerfmt",
- "serde_core",
]
[[package]]
@@ -1732,18 +1439,7 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae5c625eda104c228c06ecaf988d1c60e542176bd7a490e60eeda3493244c0c9"
dependencies = [
- "darling 0.20.11",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
-[[package]]
-name = "derive_utils"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccfae181bab5ab6c5478b2ccb69e4c68a02f8c3ec72f6616bfec9dbc599d2ee0"
-dependencies = [
+ "darling",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -1773,16 +1469,7 @@ version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
dependencies = [
- "dirs-sys 0.4.1",
-]
-
-[[package]]
-name = "dirs"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
-dependencies = [
- "dirs-sys 0.5.0",
+ "dirs-sys",
]
[[package]]
@@ -1793,40 +1480,16 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
dependencies = [
"libc",
"option-ext",
- "redox_users 0.4.6",
+ "redox_users",
"windows-sys 0.48.0",
]
-[[package]]
-name = "dirs-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users 0.5.2",
- "windows-sys 0.61.2",
-]
-
[[package]]
name = "dispatch"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-[[package]]
-name = "dispatch2"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
-dependencies = [
- "bitflags 2.9.4",
- "block2 0.6.2",
- "libc",
- "objc2 0.6.3",
-]
-
[[package]]
name = "displaydoc"
version = "0.2.5"
@@ -1847,18 +1510,6 @@ dependencies = [
"libloading",
]
-[[package]]
-name = "dnd"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
-dependencies = [
- "bitflags 2.9.4",
- "mime 0.1.0",
- "raw-window-handle",
- "smithay-client-toolkit 0.19.2",
- "smithay-clipboard",
-]
-
[[package]]
name = "document-features"
version = "0.2.11"
@@ -1883,15 +1534,15 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
[[package]]
name = "dpi"
version = "0.1.1"
-source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13-rc#8dfaba290f9a00d3e13be71f1e6f438889cf5546"
+source = "git+https://github.com/iced-rs/winit.git?rev=11414b6aa45699f038114e61b4ddf5102b2d3b4b#11414b6aa45699f038114e61b4ddf5102b2d3b4b"
[[package]]
name = "drm"
-version = "0.11.1"
+version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
+checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"bytemuck",
"drm-ffi",
"drm-fourcc",
@@ -1900,9 +1551,9 @@ dependencies = [
[[package]]
name = "drm-ffi"
-version = "0.7.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
+checksum = "97c98727e48b7ccb4f4aea8cfe881e5b07f702d17b7875991881b41af7278d53"
dependencies = [
"drm-sys",
"rustix 0.38.44",
@@ -1916,32 +1567,14 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
[[package]]
name = "drm-sys"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+checksum = "fd39dde40b6e196c2e8763f23d119ddb1a8714534bf7d77fa97a65b0feda3986"
dependencies = [
"libc",
"linux-raw-sys 0.6.5",
]
-[[package]]
-name = "dwrote"
-version = "0.11.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b35532432acc8b19ceed096e35dfa088d3ea037fe4f3c085f1f97f33b4d02"
-dependencies = [
- "lazy_static",
- "libc",
- "winapi",
- "wio",
-]
-
-[[package]]
-name = "dyn-clone"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
-
[[package]]
name = "either"
version = "1.15.0"
@@ -2021,12 +1654,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "errno"
-version = "0.3.14"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
dependencies = [
"libc",
- "windows-sys 0.61.2",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -2124,12 +1757,6 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365"
-[[package]]
-name = "fast-srgb8"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
-
[[package]]
name = "fastrand"
version = "1.9.0"
@@ -2145,26 +1772,6 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
-[[package]]
-name = "fax"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab"
-dependencies = [
- "fax_derive",
-]
-
-[[package]]
-name = "fax_derive"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "fd-lock"
version = "4.0.4"
@@ -2172,7 +1779,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce92ff622d6dadf7349484f42c93271a0d49b7cc4d466a936405bacbe10aa78"
dependencies = [
"cfg-if",
- "rustix 1.1.2",
+ "rustix 1.0.8",
"windows-sys 0.59.0",
]
@@ -2185,38 +1792,11 @@ dependencies = [
"simd-adler32",
]
-[[package]]
-name = "filetime"
-version = "0.2.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed"
-dependencies = [
- "cfg-if",
- "libc",
- "libredox",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "find-crate"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
-dependencies = [
- "toml 0.5.11",
-]
-
-[[package]]
-name = "find-msvc-tools"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
-
[[package]]
name = "flate2"
-version = "1.1.4"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -2228,63 +1808,12 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
-[[package]]
-name = "float-ord"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d"
-
[[package]]
name = "float_next_after"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
-[[package]]
-name = "fluent"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8137a6d5a2c50d6b0ebfcb9aaa91a28154e0a70605f112d30cb0cd4a78670477"
-dependencies = [
- "fluent-bundle",
- "unic-langid",
-]
-
-[[package]]
-name = "fluent-bundle"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01203cb8918f5711e73891b347816d932046f95f54207710bda99beaeb423bf4"
-dependencies = [
- "fluent-langneg",
- "fluent-syntax",
- "intl-memoizer",
- "intl_pluralrules",
- "rustc-hash 2.1.1",
- "self_cell",
- "smallvec",
- "unic-langid",
-]
-
-[[package]]
-name = "fluent-langneg"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94"
-dependencies = [
- "unic-langid",
-]
-
-[[package]]
-name = "fluent-syntax"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54f0d287c53ffd184d04d8677f590f4ac5379785529e5e08b1c8083acdd5c198"
-dependencies = [
- "memchr",
- "thiserror 2.0.17",
-]
-
[[package]]
name = "flume"
version = "0.11.1"
@@ -2308,36 +1837,11 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
-[[package]]
-name = "font-kit"
-version = "0.14.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c7e611d49285d4c4b2e1727b72cf05353558885cc5252f93707b845dfcaf3d3"
-dependencies = [
- "bitflags 2.9.4",
- "byteorder",
- "core-foundation",
- "core-graphics",
- "core-text",
- "dirs 6.0.0",
- "dwrote",
- "float-ord",
- "freetype-sys",
- "lazy_static",
- "libc",
- "log",
- "pathfinder_geometry",
- "pathfinder_simd",
- "walkdir",
- "winapi",
- "yeslogic-fontconfig-sys",
-]
-
[[package]]
name = "font-types"
-version = "0.10.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "511e2c18a516c666d27867d2f9821f76e7d591f762e9fc41dd6cc5c90fe54b0b"
+checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7"
dependencies = [
"bytemuck",
]
@@ -2351,6 +1855,20 @@ dependencies = [
"roxmltree",
]
+[[package]]
+name = "fontdb"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
+dependencies = [
+ "fontconfig-parser",
+ "log",
+ "memmap2",
+ "slotmap",
+ "tinyvec",
+ "ttf-parser 0.20.0",
+]
+
[[package]]
name = "fontdb"
version = "0.18.0"
@@ -2359,26 +1877,12 @@ checksum = "e32eac81c1135c1df01d4e6d4233c47ba11f6a6d07f33e0bba09d18797077770"
dependencies = [
"fontconfig-parser",
"log",
- "memmap2 0.9.8",
+ "memmap2",
"slotmap",
"tinyvec",
"ttf-parser 0.21.1",
]
-[[package]]
-name = "fontdb"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905"
-dependencies = [
- "fontconfig-parser",
- "log",
- "memmap2 0.9.8",
- "slotmap",
- "tinyvec",
- "ttf-parser 0.25.1",
-]
-
[[package]]
name = "foreign-types"
version = "0.5.0"
@@ -2408,46 +1912,25 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
[[package]]
name = "form_urlencoded"
-version = "1.2.2"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [
"percent-encoding",
]
[[package]]
-name = "freedesktop-desktop-entry"
-version = "0.7.19"
+name = "freedesktop-icons"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "528df05c8ed0bfd569c7018914ba1995be2a133ba9ead17628ddb0ff94b86331"
+checksum = "95f87364ea709292a3b3f74014ce3ee78412c89807eea75a358c8e029b000994"
dependencies = [
- "bstr",
- "gettext-rs",
- "log",
- "memchr",
- "thiserror 2.0.17",
- "unicase",
- "xdg 3.0.0",
-]
-
-[[package]]
-name = "freetype-sys"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e7edc5b9669349acfda99533e9e0bcf26a51862ab43b08ee7745c55d28eb134"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "fsevent-sys"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
-dependencies = [
- "libc",
+ "dirs",
+ "ini_core",
+ "once_cell",
+ "thiserror 1.0.69",
+ "tracing",
+ "xdg",
]
[[package]]
@@ -2501,7 +1984,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
dependencies = [
"futures-core",
"lock_api",
- "parking_lot 0.12.5",
+ "parking_lot",
]
[[package]]
@@ -2581,9 +2064,9 @@ dependencies = [
[[package]]
name = "generic-array"
-version = "0.14.9"
+version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
@@ -2591,12 +2074,12 @@ dependencies = [
[[package]]
name = "gethostname"
-version = "1.0.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
dependencies = [
- "rustix 1.1.2",
- "windows-targets 0.52.6",
+ "libc",
+ "windows-targets 0.48.5",
]
[[package]]
@@ -2619,27 +2102,7 @@ dependencies = [
"cfg-if",
"libc",
"r-efi",
- "wasi 0.14.7+wasi-0.2.4",
-]
-
-[[package]]
-name = "gettext-rs"
-version = "0.7.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf"
-dependencies = [
- "gettext-sys",
- "locale_config",
-]
-
-[[package]]
-name = "gettext-sys"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9"
-dependencies = [
- "cc",
- "temp-dir",
+ "wasi 0.14.2+wasi-0.2.4",
]
[[package]]
@@ -2654,9 +2117,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.32.3"
+version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
+checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "gio-sys"
@@ -2694,7 +2157,7 @@ version = "0.20.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffc4b6e352d4716d84d7dde562dd9aee2a7d48beb872dd9ece7f2d1515b2d683"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"futures-channel",
"futures-core",
"futures-executor",
@@ -2716,7 +2179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8084af62f09475a3f529b1629c10c429d7600ee1398ae12dd3bf175d74e7145"
dependencies = [
"heck 0.5.0",
- "proc-macro-crate 3.4.0",
+ "proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -2739,10 +2202,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
[[package]]
-name = "glow"
-version = "0.13.1"
+name = "gloo-timers"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "glow"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08"
dependencies = [
"js-sys",
"slotmap",
@@ -2776,7 +2251,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"gpu-alloc-types",
]
@@ -2786,20 +2261,19 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
]
[[package]]
name = "gpu-allocator"
-version = "0.26.0"
+version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7"
+checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd"
dependencies = [
"log",
"presser",
"thiserror 1.0.69",
- "winapi",
- "windows 0.52.0",
+ "windows 0.58.0",
]
[[package]]
@@ -2808,9 +2282,9 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"gpu-descriptor-types",
- "hashbrown 0.15.5",
+ "hashbrown",
]
[[package]]
@@ -2819,15 +2293,9 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
]
-[[package]]
-name = "grid"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12101ecc8225ea6d675bc70263074eab6169079621c2186fe0c66590b2df9681"
-
[[package]]
name = "gstreamer"
version = "0.23.7"
@@ -2850,7 +2318,7 @@ dependencies = [
"paste",
"pin-project-lite",
"smallvec",
- "thiserror 2.0.17",
+ "thiserror 2.0.16",
]
[[package]]
@@ -2881,36 +2349,6 @@ dependencies = [
"system-deps 7.0.5",
]
-[[package]]
-name = "gstreamer-audio"
-version = "0.23.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7ec7e0374298897e669db7c79544bc44df12011985e7dd5f38644edaf2caf4"
-dependencies = [
- "cfg-if",
- "glib",
- "gstreamer",
- "gstreamer-audio-sys",
- "gstreamer-base",
- "libc",
- "once_cell",
- "smallvec",
-]
-
-[[package]]
-name = "gstreamer-audio-sys"
-version = "0.23.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b5f3e09e7c04ec91d78c2a6ca78d50b574b9ed49fdf5e72f3693adca4306a87"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "gstreamer-base-sys",
- "gstreamer-sys",
- "libc",
- "system-deps 7.0.5",
-]
-
[[package]]
name = "gstreamer-base"
version = "0.23.6"
@@ -2938,36 +2376,6 @@ dependencies = [
"system-deps 7.0.5",
]
-[[package]]
-name = "gstreamer-pbutils"
-version = "0.23.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf4bf5857fa22f910634e86a5bce33b5581a9e90caa4e32fd4a20bdd4c83ed0"
-dependencies = [
- "glib",
- "gstreamer",
- "gstreamer-audio",
- "gstreamer-pbutils-sys",
- "gstreamer-video",
- "libc",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "gstreamer-pbutils-sys"
-version = "0.23.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "304101f5fccbbe41e0169536777ddb7680c2c837e18575c22b30fc20cedfb76f"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "gstreamer-audio-sys",
- "gstreamer-sys",
- "gstreamer-video-sys",
- "libc",
- "system-deps 7.0.5",
-]
-
[[package]]
name = "gstreamer-sys"
version = "0.23.6"
@@ -2980,37 +2388,6 @@ dependencies = [
"system-deps 7.0.5",
]
-[[package]]
-name = "gstreamer-video"
-version = "0.23.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1318b599d77ca4f7702ecbdeac1672d6304cb16b7e5752fabb3ee8260449a666"
-dependencies = [
- "cfg-if",
- "futures-channel",
- "glib",
- "gstreamer",
- "gstreamer-base",
- "gstreamer-video-sys",
- "libc",
- "once_cell",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "gstreamer-video-sys"
-version = "0.23.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a70f0947f12d253b9de9bc3fd92f981e4d025336c18389c7f08cdf388a99f5c"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "gstreamer-base-sys",
- "gstreamer-sys",
- "libc",
- "system-deps 7.0.5",
-]
-
[[package]]
name = "guillotiere"
version = "0.6.2"
@@ -3023,34 +2400,15 @@ dependencies = [
[[package]]
name = "half"
-version = "2.7.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e54c115d4f30f52c67202f079c5f9d8b49db4691f460fdb0b4c2e838261b2ba5"
+checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
dependencies = [
"cfg-if",
"crunchy",
- "zerocopy",
+ "num-traits",
]
-[[package]]
-name = "harfrust"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3fd23d35c2d8bcf34a1f0e9ea8c0ad263f0c8a9a47108eee23aac76e71645a"
-dependencies = [
- "bitflags 2.9.4",
- "bytemuck",
- "core_maths",
- "read-fonts",
- "smallvec",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
[[package]]
name = "hashbrown"
version = "0.15.5"
@@ -3062,34 +2420,13 @@ dependencies = [
"foldhash",
]
-[[package]]
-name = "hashbrown"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
-
[[package]]
name = "hashlink"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
dependencies = [
- "hashbrown 0.15.5",
-]
-
-[[package]]
-name = "hassle-rs"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
-dependencies = [
- "bitflags 2.9.4",
- "com",
- "libc",
- "libloading",
- "thiserror 1.0.69",
- "widestring",
- "winapi",
+ "hashbrown",
]
[[package]]
@@ -3156,86 +2493,16 @@ dependencies = [
]
[[package]]
-name = "html-escape"
-version = "0.2.13"
+name = "hound"
+version = "3.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476"
-dependencies = [
- "utf8-width",
-]
-
-[[package]]
-name = "i18n-config"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e06b90c8a0d252e203c94344b21e35a30f3a3a85dc7db5af8f8df9f3e0c63ef"
-dependencies = [
- "basic-toml",
- "log",
- "serde",
- "serde_derive",
- "thiserror 1.0.69",
- "unic-langid",
-]
-
-[[package]]
-name = "i18n-embed"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a217bbb075dcaefb292efa78897fc0678245ca67f265d12c351e42268fcb0305"
-dependencies = [
- "arc-swap",
- "fluent",
- "fluent-langneg",
- "fluent-syntax",
- "i18n-embed-impl",
- "intl-memoizer",
- "log",
- "parking_lot 0.12.5",
- "rust-embed",
- "sys-locale",
- "thiserror 1.0.69",
- "unic-langid",
- "walkdir",
-]
-
-[[package]]
-name = "i18n-embed-fl"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e598ed73b67db92f61e04672e599eef2991a262a40e1666735b8a86d2e7e9f30"
-dependencies = [
- "find-crate",
- "fluent",
- "fluent-syntax",
- "i18n-config",
- "i18n-embed",
- "proc-macro-error2",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.106",
- "unic-langid",
-]
-
-[[package]]
-name = "i18n-embed-impl"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2cc0e0523d1fe6fc2c6f66e5038624ea8091b3e7748b5e8e0c84b1698db6c2"
-dependencies = [
- "find-crate",
- "i18n-config",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
+checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f"
[[package]]
name = "iana-time-zone"
-version = "0.1.64"
+version = "0.1.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
+checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8"
dependencies = [
"android_system_properties",
"core-foundation-sys",
@@ -3243,7 +2510,7 @@ dependencies = [
"js-sys",
"log",
"wasm-bindgen",
- "windows-core 0.62.2",
+ "windows-core 0.61.2",
]
[[package]]
@@ -3258,59 +2525,81 @@ dependencies = [
[[package]]
name = "iced"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "dnd",
- "iced_accessibility",
"iced_core",
+ "iced_debug",
+ "iced_devtools",
"iced_futures",
"iced_renderer",
+ "iced_runtime",
"iced_widget",
"iced_winit",
"image",
- "mime 0.1.0",
"thiserror 1.0.69",
- "window_clipboard",
]
[[package]]
-name = "iced_accessibility"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+name = "iced_beacon"
+version = "0.14.0-dev"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "accesskit",
- "accesskit_winit",
+ "bincode 1.3.3",
+ "futures",
+ "iced_core",
+ "log",
+ "semver",
+ "serde",
+ "thiserror 1.0.69",
+ "tokio",
]
[[package]]
name = "iced_core"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"bytes",
- "cosmic-client-toolkit",
- "dnd",
+ "dark-light",
"glam",
- "iced_accessibility",
+ "lilt",
"log",
- "mime 0.1.0",
"num-traits",
- "once_cell",
- "palette",
- "raw-window-handle",
"rustc-hash 2.1.1",
"serde",
"smol_str",
"thiserror 1.0.69",
"web-time",
- "window_clipboard",
+]
+
+[[package]]
+name = "iced_debug"
+version = "0.14.0-dev"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
+dependencies = [
+ "cargo-hot-protocol",
+ "iced_beacon",
+ "iced_core",
+ "iced_futures",
+ "log",
+]
+
+[[package]]
+name = "iced_devtools"
+version = "0.14.0-dev"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
+dependencies = [
+ "iced_debug",
+ "iced_program",
+ "iced_widget",
+ "log",
]
[[package]]
name = "iced_futures"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
"futures",
"iced_core",
@@ -3318,27 +2607,15 @@ dependencies = [
"rustc-hash 2.1.1",
"tokio",
"wasm-bindgen-futures",
- "wasm-timer",
-]
-
-[[package]]
-name = "iced_glyphon"
-version = "0.6.0"
-source = "git+https://github.com/pop-os/glyphon.git?tag=iced-0.14-dev#6ef9d12a20cfd0f7bdf38136a26ded9f7459ec8b"
-dependencies = [
- "cosmic-text",
- "etagere",
- "lru",
- "rustc-hash 2.1.1",
- "wgpu",
+ "wasmtimer",
]
[[package]]
name = "iced_graphics"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"bytemuck",
"cosmic-text",
"half",
@@ -3348,17 +2625,25 @@ dependencies = [
"kamadak-exif",
"log",
"lyon_path",
- "once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"rustc-hash 2.1.1",
"thiserror 1.0.69",
"unicode-segmentation",
]
+[[package]]
+name = "iced_program"
+version = "0.14.0-dev"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
+dependencies = [
+ "iced_graphics",
+ "iced_runtime",
+]
+
[[package]]
name = "iced_renderer"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
"iced_graphics",
"iced_tiny_skia",
@@ -3370,30 +2655,28 @@ dependencies = [
[[package]]
name = "iced_runtime"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
"bytes",
- "cosmic-client-toolkit",
- "dnd",
- "iced_accessibility",
"iced_core",
+ "iced_debug",
"iced_futures",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"thiserror 1.0.69",
- "window_clipboard",
]
[[package]]
name = "iced_tiny_skia"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
"bytemuck",
"cosmic-text",
+ "iced_debug",
"iced_graphics",
"kurbo 0.10.4",
"log",
- "resvg 0.42.0",
+ "resvg",
"rustc-hash 2.1.1",
"softbuffer",
"tiny-skia",
@@ -3402,15 +2685,14 @@ dependencies = [
[[package]]
name = "iced_video_player"
version = "0.6.0"
-source = "git+https://github.com/jackpot51/iced_video_player.git?branch=cosmic#ff37a34f99814597db0e265e172dd5a85a03394a"
+source = "git+https://git.tfcconnection.org/chris/iced_video_player?branch=master#3e99427f5e430a81ac57dd448463eb59e3740276"
dependencies = [
"glib",
"gstreamer",
"gstreamer-app",
"gstreamer-base",
- "gstreamer-pbutils",
- "html-escape",
- "libcosmic",
+ "iced",
+ "iced_wgpu",
"log",
"thiserror 1.0.69",
"url",
@@ -3419,82 +2701,54 @@ dependencies = [
[[package]]
name = "iced_wgpu"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "as-raw-xcb-connection",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"bytemuck",
- "cosmic-client-toolkit",
+ "cryoglyph",
"futures",
"glam",
"guillotiere",
- "iced_glyphon",
+ "iced_debug",
"iced_graphics",
"log",
"lyon",
- "once_cell",
- "raw-window-handle",
- "resvg 0.42.0",
+ "resvg",
"rustc-hash 2.1.1",
- "rustix 0.38.44",
"thiserror 1.0.69",
- "tiny-xlib",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-sys",
"wgpu",
- "x11rb",
]
[[package]]
name = "iced_widget"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "cosmic-client-toolkit",
- "dnd",
- "iced_accessibility",
"iced_renderer",
"iced_runtime",
"log",
"num-traits",
- "once_cell",
"ouroboros",
"rustc-hash 2.1.1",
"thiserror 1.0.69",
"unicode-segmentation",
- "window_clipboard",
]
[[package]]
name = "iced_winit"
version = "0.14.0-dev"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
+source = "git+https://github.com/iced-rs/iced?branch=master#f9a6a3051d0a5e1c9f47ebe4071daf5621f8d9c1"
dependencies = [
- "cosmic-client-toolkit",
- "dnd",
- "iced_accessibility",
- "iced_futures",
- "iced_graphics",
- "iced_runtime",
+ "iced_debug",
+ "iced_program",
"log",
- "raw-window-handle",
"rustc-hash 2.1.1",
- "rustix 0.38.44",
"thiserror 1.0.69",
"tracing",
"wasm-bindgen-futures",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
"web-sys",
- "winapi",
"window_clipboard",
"winit",
- "xkbcommon 0.7.0",
- "xkbcommon-dl",
- "xkeysym",
]
[[package]]
@@ -3591,9 +2845,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
-version = "1.1.0"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
+checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
dependencies = [
"idna_adapter",
"smallvec",
@@ -3612,9 +2866,9 @@ dependencies = [
[[package]]
name = "image"
-version = "0.25.8"
+version = "0.25.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7"
+checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a"
dependencies = [
"bytemuck",
"byteorder-lite",
@@ -3622,9 +2876,8 @@ dependencies = [
"exr",
"gif",
"image-webp",
- "moxcms",
"num-traits",
- "png 0.18.0",
+ "png",
"qoi",
"ravif",
"rayon",
@@ -3636,9 +2889,9 @@ dependencies = [
[[package]]
name = "image-webp"
-version = "0.2.4"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
+checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b"
dependencies = [
"byteorder-lite",
"quick-error",
@@ -3650,48 +2903,20 @@ version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
-[[package]]
-name = "imagesize"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285"
-
[[package]]
name = "imgref"
-version = "1.12.0"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8"
-
-[[package]]
-name = "immutable-chunkmap"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3e98b1520e49e252237edc238a39869da9f3241f2ec19dc788c1d24694d1e4"
-dependencies = [
- "arrayvec",
-]
+checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408"
[[package]]
name = "indexmap"
-version = "1.9.3"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
- "serde",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
+checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
dependencies = [
"equivalent",
- "hashbrown 0.16.0",
- "serde",
- "serde_core",
+ "hashbrown",
]
[[package]]
@@ -3703,26 +2928,6 @@ dependencies = [
"cfg-if",
]
-[[package]]
-name = "inotify"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
-dependencies = [
- "bitflags 2.9.4",
- "inotify-sys",
- "libc",
-]
-
-[[package]]
-name = "inotify-sys"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "instant"
version = "0.1.13"
@@ -3743,25 +2948,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "intl-memoizer"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "310da2e345f5eb861e7a07ee182262e94975051db9e4223e909ba90f392f163f"
-dependencies = [
- "type-map",
- "unic-langid",
-]
-
-[[package]]
-name = "intl_pluralrules"
-version = "7.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
-dependencies = [
- "unic-langid",
-]
-
[[package]]
name = "io-lifetimes"
version = "1.0.11"
@@ -3775,11 +2961,11 @@ dependencies = [
[[package]]
name = "io-uring"
-version = "0.7.10"
+version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
+checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cfg-if",
"libc",
]
@@ -3853,9 +3039,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "jobserver"
-version = "0.1.34"
+version = "0.1.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
+checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
dependencies = [
"getrandom 0.3.3",
"libc",
@@ -3869,9 +3055,9 @@ checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07"
[[package]]
name = "js-sys"
-version = "0.3.81"
+version = "0.3.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305"
+checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -3903,35 +3089,6 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
-[[package]]
-name = "known-folders"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d463f34ca3c400fde3a054da0e0b8c6ffa21e4590922f3e18281bb5eeef4cbdc"
-dependencies = [
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "kqueue"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a"
-dependencies = [
- "kqueue-sys",
- "libc",
-]
-
-[[package]]
-name = "kqueue-sys"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
-dependencies = [
- "bitflags 1.3.2",
- "libc",
-]
-
[[package]]
name = "kurbo"
version = "0.10.4"
@@ -3953,6 +3110,15 @@ dependencies = [
"smallvec",
]
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
[[package]]
name = "lazy_static"
version = "1.5.0"
@@ -3964,66 +3130,47 @@ dependencies = [
[[package]]
name = "lebe"
-version = "0.5.3"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
+checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
+
+[[package]]
+name = "lewton"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
+dependencies = [
+ "byteorder",
+ "ogg",
+ "tinyvec",
+]
+
+[[package]]
+name = "lexpr"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a84de6a9df442363b08f5dbf0cd5b92edc70097b89c4ce4bfea4679fe48bc67"
+dependencies = [
+ "itoa",
+ "lexpr-macros",
+ "ryu",
+]
+
+[[package]]
+name = "lexpr-macros"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36b5cb8bb985c81a8ac1a0f8b5c4865214f574ddd64397ef7a99c236e21f35bb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
[[package]]
name = "libc"
-version = "0.2.177"
+version = "0.2.175"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
-
-[[package]]
-name = "libcosmic"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#483fb2cdd103e44d3d6cfc7522455f683789b87e"
-dependencies = [
- "apply",
- "ashpd 0.12.0",
- "auto_enums",
- "chrono",
- "cosmic-client-toolkit",
- "cosmic-config",
- "cosmic-freedesktop-icons",
- "cosmic-settings-config",
- "cosmic-settings-daemon",
- "cosmic-theme",
- "css-color",
- "derive_setters",
- "freedesktop-desktop-entry",
- "futures",
- "i18n-embed",
- "i18n-embed-fl",
- "iced",
- "iced_accessibility",
- "iced_core",
- "iced_futures",
- "iced_renderer",
- "iced_runtime",
- "iced_tiny_skia",
- "iced_wgpu",
- "iced_widget",
- "iced_winit",
- "image",
- "libc",
- "mime 0.3.17",
- "palette",
- "raw-window-handle",
- "rfd",
- "rust-embed",
- "rustix 1.1.2",
- "serde",
- "shlex",
- "slotmap",
- "taffy",
- "thiserror 2.0.17",
- "tokio",
- "tracing",
- "unicode-segmentation",
- "url",
- "zbus 5.11.0",
-]
+checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
[[package]]
name = "libfuzzer-sys"
@@ -4037,12 +3184,12 @@ dependencies = [
[[package]]
name = "libloading"
-version = "0.8.9"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
+checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
dependencies = [
"cfg-if",
- "windows-link",
+ "windows-targets 0.53.3",
]
[[package]]
@@ -4053,13 +3200,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
[[package]]
name = "libredox"
-version = "0.1.10"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
+checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"libc",
- "redox_syscall 0.5.18",
+ "redox_syscall 0.5.17",
]
[[package]]
@@ -4074,10 +3221,13 @@ dependencies = [
]
[[package]]
-name = "linebender_resource_handle"
-version = "0.1.1"
+name = "lilt"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4"
+checksum = "f67562e5eff6b20553fa9be1c503356768420994e28f67e3eafe6f41910e57ad"
+dependencies = [
+ "web-time",
+]
[[package]]
name = "linux-raw-sys"
@@ -4099,9 +3249,9 @@ checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7"
[[package]]
name = "linux-raw-sys"
-version = "0.11.0"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
+checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
[[package]]
name = "litemap"
@@ -4115,33 +3265,24 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
-[[package]]
-name = "locale_config"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-dependencies = [
- "lazy_static",
- "objc",
- "objc-foundation",
- "regex",
- "winapi",
-]
-
[[package]]
name = "lock_api"
-version = "0.4.14"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
dependencies = [
+ "autocfg",
"scopeguard",
]
[[package]]
name = "log"
-version = "0.4.28"
+version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
+checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
+dependencies = [
+ "value-bag",
+]
[[package]]
name = "loop9"
@@ -4154,9 +3295,9 @@ dependencies = [
[[package]]
name = "lru"
-version = "0.12.5"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
+checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed"
[[package]]
name = "lumina"
@@ -4165,40 +3306,37 @@ dependencies = [
"clap",
"colors-transform",
"crisp",
- "dirs 6.0.0",
- "fastrand 2.3.0",
+ "derive_setters",
+ "dirs",
+ "freedesktop-icons",
"gstreamer",
"gstreamer-app",
+ "iced",
"iced_video_player",
- "image",
- "libcosmic",
+ "lexpr",
"miette",
- "mupdf",
"pretty_assertions",
- "rapidfuzz",
- "rapidhash",
"rayon",
- "resvg 0.45.1",
+ "rfd",
"rodio",
- "ron 0.8.1",
+ "ron",
"serde",
+ "serde-lexpr",
"sqlx",
"strum",
"strum_macros",
- "tar",
"tokio",
"tracing",
"tracing-log",
"tracing-subscriber",
"url",
- "zstd",
]
[[package]]
name = "lyon"
-version = "1.0.16"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbcb7d54d54c8937364c9d41902d066656817dce1e03a44e5533afebd1ef4352"
+checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f"
dependencies = [
"lyon_algorithms",
"lyon_tessellation",
@@ -4206,9 +3344,9 @@ dependencies = [
[[package]]
name = "lyon_algorithms"
-version = "1.0.16"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c0829e28c4f336396f250d850c3987e16ce6db057ffe047ce0dd54aab6b647"
+checksum = "f13c9be19d257c7d37e70608ed858e8eab4b2afcea2e3c9a622e892acbf43c08"
dependencies = [
"lyon_path",
"num-traits",
@@ -4216,9 +3354,9 @@ dependencies = [
[[package]]
name = "lyon_geom"
-version = "1.0.17"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e16770d760c7848b0c1c2d209101e408207a65168109509f8483837a36cf2e7"
+checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570"
dependencies = [
"arrayvec",
"euclid",
@@ -4227,9 +3365,9 @@ dependencies = [
[[package]]
name = "lyon_path"
-version = "1.0.16"
+version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aeca86bcfd632a15984ba029b539ffb811e0a70bf55e814ef8b0f54f506fdeb"
+checksum = "0047f508cd7a85ad6bad9518f68cce7b1bf6b943fb71f6da0ee3bc1e8cb75f25"
dependencies = [
"lyon_geom",
"num-traits",
@@ -4237,9 +3375,9 @@ dependencies = [
[[package]]
name = "lyon_tessellation"
-version = "1.0.16"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3f586142e1280335b1bc89539f7c97dd80f08fc43e9ab1b74ef0a42b04aa353"
+checksum = "579d42360a4b09846eff2feef28f538696c7d6c7439bfa65874ff3cbe0951b2c"
dependencies = [
"float_next_after",
"lyon_path",
@@ -4266,11 +3404,11 @@ dependencies = [
[[package]]
name = "matchers"
-version = "0.2.0"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
dependencies = [
- "regex-automata",
+ "regex-automata 0.1.10",
]
[[package]]
@@ -4295,24 +3433,24 @@ dependencies = [
[[package]]
name = "memchr"
-version = "2.7.6"
+version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
+checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
[[package]]
-name = "memmap2"
-version = "0.8.0"
+name = "memfd"
+version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"
dependencies = [
- "libc",
+ "rustix 0.38.44",
]
[[package]]
name = "memmap2"
-version = "0.9.8"
+version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7"
+checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
dependencies = [
"libc",
]
@@ -4337,13 +3475,13 @@ dependencies = [
[[package]]
name = "metal"
-version = "0.29.0"
+version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21"
+checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"block",
- "core-graphics-types",
+ "core-graphics-types 0.2.0",
"foreign-types",
"log",
"objc",
@@ -4380,20 +3518,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "mime"
-version = "0.1.0"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
-dependencies = [
- "smithay-clipboard",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
[[package]]
name = "minimal-lexical"
version = "0.2.1"
@@ -4417,52 +3541,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
dependencies = [
"libc",
- "log",
"wasi 0.11.1+wasi-snapshot-preview1",
"windows-sys 0.59.0",
]
-[[package]]
-name = "moxcms"
-version = "0.7.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c588e11a3082784af229e23e8e4ecf5bcc6fbe4f69101e0421ce8d79da7f0b40"
-dependencies = [
- "num-traits",
- "pxfm",
-]
-
[[package]]
name = "muldiv"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
-[[package]]
-name = "mupdf"
-version = "0.5.0"
-source = "git+https://github.com/messense/mupdf-rs?rev=2425c1405b326165b06834dcc1ca859015f92787#2425c1405b326165b06834dcc1ca859015f92787"
-dependencies = [
- "bitflags 2.9.4",
- "font-kit",
- "mupdf-sys",
- "num_enum",
- "once_cell",
- "zerocopy",
-]
-
-[[package]]
-name = "mupdf-sys"
-version = "0.5.0"
-source = "git+https://github.com/messense/mupdf-rs?rev=2425c1405b326165b06834dcc1ca859015f92787#2425c1405b326165b06834dcc1ca859015f92787"
-dependencies = [
- "bindgen",
- "cc",
- "pkg-config",
- "regex",
- "zerocopy",
-]
-
[[package]]
name = "mutate_once"
version = "0.1.2"
@@ -4471,23 +3559,42 @@ checksum = "13d2233c9842d08cfe13f9eac96e207ca6a2ea10b80259ebe8ad0268be27d2af"
[[package]]
name = "naga"
-version = "22.1.0"
+version = "26.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad"
+checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c"
dependencies = [
"arrayvec",
"bit-set",
- "bitflags 2.9.4",
- "cfg_aliases 0.1.1",
+ "bitflags 2.9.2",
+ "cfg-if",
+ "cfg_aliases 0.2.1",
"codespan-reporting",
+ "half",
+ "hashbrown",
"hexf-parse",
- "indexmap 2.11.4",
+ "indexmap",
+ "libm",
"log",
+ "num-traits",
+ "once_cell",
"rustc-hash 1.1.0",
"spirv",
- "termcolor",
+ "thiserror 2.0.16",
+ "unicode-ident",
+]
+
+[[package]]
+name = "ndk"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
+dependencies = [
+ "bitflags 2.9.2",
+ "jni-sys",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum",
"thiserror 1.0.69",
- "unicode-xid",
]
[[package]]
@@ -4496,12 +3603,12 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"jni-sys",
"log",
"ndk-sys 0.6.0+11769913",
"num_enum",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"thiserror 1.0.69",
]
@@ -4562,7 +3669,7 @@ version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cfg-if",
"cfg_aliases 0.1.1",
"libc",
@@ -4574,7 +3681,7 @@ version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cfg-if",
"cfg_aliases 0.2.1",
"libc",
@@ -4597,37 +3704,14 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
-[[package]]
-name = "notify"
-version = "8.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3"
-dependencies = [
- "bitflags 2.9.4",
- "fsevent-sys",
- "inotify",
- "kqueue",
- "libc",
- "log",
- "mio",
- "notify-types",
- "walkdir",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "notify-types"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d"
-
[[package]]
name = "nu-ansi-term"
-version = "0.50.3"
+version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
- "windows-sys 0.61.2",
+ "overload",
+ "winapi",
]
[[package]]
@@ -4652,7 +3736,7 @@ dependencies = [
"num-integer",
"num-iter",
"num-traits",
- "rand 0.8.5",
+ "rand",
"smallvec",
"zeroize",
]
@@ -4741,7 +3825,7 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d"
dependencies = [
- "proc-macro-crate 3.4.0",
+ "proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
"syn 2.0.106",
@@ -4792,69 +3876,33 @@ dependencies = [
"objc2-encode",
]
-[[package]]
-name = "objc2"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
-dependencies = [
- "objc2-encode",
-]
-
[[package]]
name = "objc2-app-kit"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
+ "bitflags 2.9.2",
+ "block2",
"libc",
- "objc2 0.5.2",
+ "objc2",
"objc2-core-data",
"objc2-core-image",
- "objc2-foundation 0.2.2",
+ "objc2-foundation",
"objc2-quartz-core",
]
-[[package]]
-name = "objc2-app-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
-dependencies = [
- "bitflags 2.9.4",
- "block2 0.6.2",
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-audio-toolbox"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6948501a91121d6399b79abaa33a8aa4ea7857fe019f341b8c23ad6e81b79b08"
-dependencies = [
- "bitflags 2.9.4",
- "libc",
- "objc2 0.6.3",
- "objc2-core-audio",
- "objc2-core-audio-types",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
-]
-
[[package]]
name = "objc2-cloud-kit"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
"objc2-core-location",
- "objc2-foundation 0.2.2",
+ "objc2-foundation",
]
[[package]]
@@ -4863,31 +3911,9 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
dependencies = [
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
-]
-
-[[package]]
-name = "objc2-core-audio"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2"
-dependencies = [
- "dispatch2",
- "objc2 0.6.3",
- "objc2-core-audio-types",
- "objc2-core-foundation",
-]
-
-[[package]]
-name = "objc2-core-audio-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c"
-dependencies = [
- "bitflags 2.9.4",
- "objc2 0.6.3",
+ "block2",
+ "objc2",
+ "objc2-foundation",
]
[[package]]
@@ -4896,21 +3922,10 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
-]
-
-[[package]]
-name = "objc2-core-foundation"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
-dependencies = [
- "bitflags 2.9.4",
- "dispatch2",
- "objc2 0.6.3",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
+ "objc2-foundation",
]
[[package]]
@@ -4919,9 +3934,9 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
dependencies = [
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
+ "block2",
+ "objc2",
+ "objc2-foundation",
"objc2-metal",
]
@@ -4931,10 +3946,10 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
dependencies = [
- "block2 0.5.1",
- "objc2 0.5.2",
+ "block2",
+ "objc2",
"objc2-contacts",
- "objc2-foundation 0.2.2",
+ "objc2-foundation",
]
[[package]]
@@ -4949,22 +3964,11 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
+ "bitflags 2.9.2",
+ "block2",
"dispatch",
"libc",
- "objc2 0.5.2",
-]
-
-[[package]]
-name = "objc2-foundation"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
-dependencies = [
- "bitflags 2.9.4",
- "objc2 0.6.3",
- "objc2-core-foundation",
+ "objc2",
]
[[package]]
@@ -4973,10 +3977,10 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
dependencies = [
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-app-kit 0.2.2",
- "objc2-foundation 0.2.2",
+ "block2",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
]
[[package]]
@@ -4985,10 +3989,10 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
+ "objc2-foundation",
]
[[package]]
@@ -4997,10 +4001,10 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
+ "objc2-foundation",
"objc2-metal",
]
@@ -5010,8 +4014,8 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc"
dependencies = [
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
+ "objc2",
+ "objc2-foundation",
]
[[package]]
@@ -5020,14 +4024,14 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
"objc2-cloud-kit",
"objc2-core-data",
"objc2-core-image",
"objc2-core-location",
- "objc2-foundation 0.2.2",
+ "objc2-foundation",
"objc2-link-presentation",
"objc2-quartz-core",
"objc2-symbols",
@@ -5041,9 +4045,9 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
dependencies = [
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
+ "block2",
+ "objc2",
+ "objc2-foundation",
]
[[package]]
@@ -5052,11 +4056,11 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
dependencies = [
- "bitflags 2.9.4",
- "block2 0.5.1",
- "objc2 0.5.2",
+ "bitflags 2.9.2",
+ "block2",
+ "objc2",
"objc2-core-location",
- "objc2-foundation 0.2.2",
+ "objc2-foundation",
]
[[package]]
@@ -5070,13 +4074,45 @@ dependencies = [
[[package]]
name = "object"
-version = "0.37.3"
+version = "0.36.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
+checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
dependencies = [
"memchr",
]
+[[package]]
+name = "oboe"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
+dependencies = [
+ "jni",
+ "ndk 0.8.0",
+ "ndk-context",
+ "num-derive",
+ "num-traits",
+ "oboe-sys",
+]
+
+[[package]]
+name = "oboe-sys"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ogg"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
+dependencies = [
+ "byteorder",
+]
+
[[package]]
name = "once_cell"
version = "1.21.3"
@@ -5113,6 +4149,15 @@ dependencies = [
"libredox",
]
+[[package]]
+name = "ordered-float"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01"
+dependencies = [
+ "num-traits",
+]
+
[[package]]
name = "ordered-stream"
version = "0.2.0"
@@ -5147,6 +4192,12 @@ dependencies = [
"syn 2.0.106",
]
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
[[package]]
name = "owned_ttf_parser"
version = "0.25.1"
@@ -5158,34 +4209,9 @@ dependencies = [
[[package]]
name = "owo-colors"
-version = "4.2.3"
+version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52"
-
-[[package]]
-name = "palette"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6"
-dependencies = [
- "approx",
- "fast-srgb8",
- "palette_derive",
- "phf",
- "serde",
-]
-
-[[package]]
-name = "palette_derive"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30"
-dependencies = [
- "by_address",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
+checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
[[package]]
name = "parking"
@@ -5195,50 +4221,25 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
[[package]]
name = "parking_lot"
-version = "0.11.2"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.12.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
+checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
dependencies = [
"lock_api",
- "parking_lot_core 0.9.12",
+ "parking_lot_core",
]
[[package]]
name = "parking_lot_core"
-version = "0.8.6"
+version = "0.9.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
+checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
dependencies = [
"cfg-if",
"libc",
- "redox_syscall 0.5.18",
+ "redox_syscall 0.5.17",
"smallvec",
- "windows-link",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -5247,25 +4248,6 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
-[[package]]
-name = "pathfinder_geometry"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3"
-dependencies = [
- "log",
- "pathfinder_simd",
-]
-
-[[package]]
-name = "pathfinder_simd"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf9027960355bf3afff9841918474a81a5f972ac6d226d518060bba758b5ad57"
-dependencies = [
- "rustc_version",
-]
-
[[package]]
name = "pem-rfc7468"
version = "0.7.0"
@@ -5277,51 +4259,9 @@ dependencies = [
[[package]]
name = "percent-encoding"
-version = "2.3.2"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
-
-[[package]]
-name = "phf"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
-dependencies = [
- "phf_macros",
- "phf_shared",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
-dependencies = [
- "phf_shared",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
-dependencies = [
- "phf_generator",
- "phf_shared",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
-dependencies = [
- "siphasher",
-]
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pico-args"
@@ -5412,19 +4352,6 @@ dependencies = [
"miniz_oxide",
]
-[[package]]
-name = "png"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0"
-dependencies = [
- "bitflags 2.9.4",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
[[package]]
name = "polling"
version = "2.8.0"
@@ -5443,29 +4370,44 @@ dependencies = [
[[package]]
name = "polling"
-version = "3.11.0"
+version = "3.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
+checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829"
dependencies = [
"cfg-if",
"concurrent-queue",
"hermit-abi 0.5.2",
"pin-project-lite",
- "rustix 1.1.2",
- "windows-sys 0.61.2",
+ "rustix 1.0.8",
+ "windows-sys 0.60.2",
]
[[package]]
name = "pollster"
-version = "0.4.0"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
+checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
+
+[[package]]
+name = "portable-atomic"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+
+[[package]]
+name = "portable-atomic-util"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
+dependencies = [
+ "portable-atomic",
+]
[[package]]
name = "potential_utf"
-version = "0.1.3"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a"
+checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
dependencies = [
"zerovec",
]
@@ -5513,33 +4455,11 @@ dependencies = [
[[package]]
name = "proc-macro-crate"
-version = "3.4.0"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
+checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
dependencies = [
- "toml_edit 0.23.7",
-]
-
-[[package]]
-name = "proc-macro-error-attr2"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "proc-macro-error2"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
-dependencies = [
- "proc-macro-error-attr2",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
+ "toml_edit 0.22.27",
]
[[package]]
@@ -5583,15 +4503,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "pxfm"
-version = "0.1.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3cbdf373972bf78df4d3b518d07003938e2c7d1fb5891e55f9cb6df57009d84"
-dependencies = [
- "num-traits",
-]
-
[[package]]
name = "qoi"
version = "0.4.1"
@@ -5618,9 +4529,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.41"
+version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
dependencies = [
"proc-macro2",
]
@@ -5648,18 +4559,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
-dependencies = [
- "rand_chacha 0.9.0",
- "rand_core 0.9.3",
+ "rand_chacha",
+ "rand_core",
]
[[package]]
@@ -5669,17 +4570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.9.3",
+ "rand_core",
]
[[package]]
@@ -5691,15 +4582,6 @@ dependencies = [
"getrandom 0.2.16",
]
-[[package]]
-name = "rand_core"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
-dependencies = [
- "getrandom 0.3.3",
-]
-
[[package]]
name = "range-alloc"
version = "0.1.4"
@@ -5712,21 +4594,6 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223"
-[[package]]
-name = "rapidfuzz"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "270e04e5ea61d40841942bb15e451c29ee1618637bcf97fc7ede5dd4a9b1601b"
-
-[[package]]
-name = "rapidhash"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "164772177ee16e3b074e6019c63cd92cb3cecf38e8c40d097675958b86dd8084"
-dependencies = [
- "rustversion",
-]
-
[[package]]
name = "rav1e"
version = "0.7.1"
@@ -5753,8 +4620,8 @@ dependencies = [
"once_cell",
"paste",
"profiling",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
"simd_helpers",
"system-deps 6.2.2",
"thiserror 1.0.69",
@@ -5777,6 +4644,12 @@ dependencies = [
"rgb",
]
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
[[package]]
name = "raw-window-handle"
version = "0.6.2"
@@ -5805,31 +4678,30 @@ dependencies = [
[[package]]
name = "read-fonts"
-version = "0.35.0"
+version = "0.29.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358"
+checksum = "04ca636dac446b5664bd16c069c00a9621806895b8bb02c2dc68542b23b8f25d"
dependencies = [
"bytemuck",
- "core_maths",
"font-types",
]
[[package]]
name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
dependencies = [
"bitflags 1.3.2",
]
[[package]]
name = "redox_syscall"
-version = "0.5.18"
+version = "0.5.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
]
[[package]]
@@ -5843,65 +4715,49 @@ dependencies = [
"thiserror 1.0.69",
]
-[[package]]
-name = "redox_users"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
-dependencies = [
- "getrandom 0.2.16",
- "libredox",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "ref-cast"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
-dependencies = [
- "ref-cast-impl",
-]
-
-[[package]]
-name = "ref-cast-impl"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "regex"
-version = "1.12.2"
+version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [
"aho-corasick",
"memchr",
- "regex-automata",
- "regex-syntax",
+ "regex-automata 0.4.9",
+ "regex-syntax 0.8.5",
]
[[package]]
name = "regex-automata"
-version = "0.4.13"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax",
+ "regex-syntax 0.8.5",
]
[[package]]
name = "regex-syntax"
-version = "0.8.8"
+version = "0.6.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "renderdoc-sys"
@@ -5922,48 +4778,32 @@ dependencies = [
"rgb",
"svgtypes",
"tiny-skia",
- "usvg 0.42.0",
-]
-
-[[package]]
-name = "resvg"
-version = "0.45.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43"
-dependencies = [
- "gif",
- "image-webp",
- "log",
- "pico-args",
- "rgb",
- "svgtypes",
- "tiny-skia",
- "usvg 0.45.1",
- "zune-jpeg",
+ "usvg",
]
[[package]]
name = "rfd"
-version = "0.15.4"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed"
+checksum = "3c9e7b57df6e8472152674607f6cc68aa14a748a3157a857a94f516e11aeacc2"
dependencies = [
- "ashpd 0.11.0",
- "block2 0.6.2",
- "dispatch2",
+ "ashpd 0.6.8",
+ "async-io 1.13.0",
+ "block",
+ "dispatch",
+ "futures-util",
"js-sys",
"log",
- "objc2 0.6.3",
- "objc2-app-kit 0.3.2",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
+ "objc",
+ "objc-foundation",
+ "objc_id",
"pollster",
- "raw-window-handle",
+ "raw-window-handle 0.5.2",
"urlencoding",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
- "windows-sys 0.59.0",
+ "windows-sys 0.48.0",
]
[[package]]
@@ -5977,13 +4817,14 @@ dependencies = [
[[package]]
name = "rodio"
-version = "0.21.1"
+version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e40ecf59e742e03336be6a3d53755e789fd05a059fa22dfa0ed624722319e183"
+checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1"
dependencies = [
+ "claxon",
"cpal",
- "dasp_sample",
- "num-rational",
+ "hound",
+ "lewton",
"symphonia",
"tracing",
]
@@ -5995,24 +4836,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
dependencies = [
"base64 0.21.7",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"serde",
"serde_derive",
]
-[[package]]
-name = "ron"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468"
-dependencies = [
- "base64 0.22.1",
- "bitflags 2.9.4",
- "serde",
- "serde_derive",
- "unicode-ident",
-]
-
[[package]]
name = "roxmltree"
version = "0.20.0"
@@ -6032,47 +4860,13 @@ dependencies = [
"num-traits",
"pkcs1",
"pkcs8",
- "rand_core 0.6.4",
+ "rand_core",
"signature",
"spki",
"subtle",
"zeroize",
]
-[[package]]
-name = "rust-embed"
-version = "8.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a"
-dependencies = [
- "rust-embed-impl",
- "rust-embed-utils",
- "walkdir",
-]
-
-[[package]]
-name = "rust-embed-impl"
-version = "8.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c"
-dependencies = [
- "proc-macro2",
- "quote",
- "rust-embed-utils",
- "syn 2.0.106",
- "walkdir",
-]
-
-[[package]]
-name = "rust-embed-utils"
-version = "8.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594"
-dependencies = [
- "sha2",
- "walkdir",
-]
-
[[package]]
name = "rustc-demangle"
version = "0.1.26"
@@ -6091,15 +4885,6 @@ version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
-[[package]]
-name = "rustc_version"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
-dependencies = [
- "semver",
-]
-
[[package]]
name = "rustix"
version = "0.37.28"
@@ -6120,7 +4905,7 @@ version = "0.38.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"errno",
"libc",
"linux-raw-sys 0.4.15",
@@ -6129,15 +4914,15 @@ dependencies = [
[[package]]
name = "rustix"
-version = "1.1.2"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"errno",
"libc",
- "linux-raw-sys 0.11.0",
- "windows-sys 0.61.2",
+ "linux-raw-sys 0.9.4",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -6152,30 +4937,13 @@ version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"bytemuck",
+ "libm",
"smallvec",
"ttf-parser 0.21.1",
- "unicode-bidi-mirroring 0.2.0",
- "unicode-ccc 0.2.0",
- "unicode-properties",
- "unicode-script",
-]
-
-[[package]]
-name = "rustybuzz"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702"
-dependencies = [
- "bitflags 2.9.4",
- "bytemuck",
- "core_maths",
- "log",
- "smallvec",
- "ttf-parser 0.25.1",
- "unicode-bidi-mirroring 0.4.0",
- "unicode-ccc 0.4.0",
+ "unicode-bidi-mirroring",
+ "unicode-ccc",
"unicode-properties",
"unicode-script",
]
@@ -6186,7 +4954,7 @@ version = "14.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cfg-if",
"clipboard-win",
"fd-lock",
@@ -6217,30 +4985,6 @@ dependencies = [
"winapi-util",
]
-[[package]]
-name = "schemars"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
-dependencies = [
- "dyn-clone",
- "ref-cast",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "schemars"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
-dependencies = [
- "dyn-clone",
- "ref-cast",
- "serde",
- "serde_json",
-]
-
[[package]]
name = "scoped-tls"
version = "1.0.1"
@@ -6261,8 +5005,8 @@ checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec"
dependencies = [
"ab_glyph",
"log",
- "memmap2 0.9.8",
- "smithay-client-toolkit 0.19.2",
+ "memmap2",
+ "smithay-client-toolkit",
"tiny-skia",
]
@@ -6274,34 +5018,37 @@ checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749"
[[package]]
name = "semver"
-version = "1.0.27"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
+checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
+dependencies = [
+ "serde",
+]
[[package]]
name = "serde"
-version = "1.0.228"
+version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [
- "serde_core",
"serde_derive",
]
[[package]]
-name = "serde_core"
-version = "1.0.228"
+name = "serde-lexpr"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+checksum = "bb4cda13396159f59e7946118cdac0beadeecfb7cf76b197f4147e546f4ead6f"
dependencies = [
- "serde_derive",
+ "lexpr",
+ "serde",
]
[[package]]
name = "serde_derive"
-version = "1.0.228"
+version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [
"proc-macro2",
"quote",
@@ -6310,16 +5057,14 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.145"
+version = "1.0.143"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
+checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
dependencies = [
- "indexmap 2.11.4",
"itoa",
"memchr",
"ryu",
"serde",
- "serde_core",
]
[[package]]
@@ -6354,37 +5099,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "serde_with"
-version = "3.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5"
-dependencies = [
- "base64 0.22.1",
- "chrono",
- "hex",
- "indexmap 1.9.3",
- "indexmap 2.11.4",
- "schemars 0.9.0",
- "schemars 1.0.4",
- "serde_core",
- "serde_json",
- "serde_with_macros",
- "time",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "3.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27"
-dependencies = [
- "darling 0.21.3",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "sha1"
version = "0.10.6"
@@ -6438,7 +5152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
"digest",
- "rand_core 0.6.4",
+ "rand_core",
]
[[package]]
@@ -6473,9 +5187,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
[[package]]
name = "skrifa"
-version = "0.37.0"
+version = "0.31.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841"
+checksum = "dbeb4ca4399663735553a09dd17ce7e49a0a0203f03b706b39628c4d913a8607"
dependencies = [
"bytemuck",
"read-fonts",
@@ -6511,13 +5225,13 @@ version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
dependencies = [
- "bitflags 2.9.4",
- "calloop 0.13.0",
- "calloop-wayland-source 0.3.0",
+ "bitflags 2.9.2",
+ "calloop",
+ "calloop-wayland-source",
"cursor-icon",
"libc",
"log",
- "memmap2 0.9.8",
+ "memmap2",
"rustix 0.38.44",
"thiserror 1.0.69",
"wayland-backend",
@@ -6530,44 +5244,14 @@ dependencies = [
"xkeysym",
]
-[[package]]
-name = "smithay-client-toolkit"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0"
-dependencies = [
- "bitflags 2.9.4",
- "bytemuck",
- "calloop 0.14.3",
- "calloop-wayland-source 0.4.1",
- "cursor-icon",
- "libc",
- "log",
- "memmap2 0.9.8",
- "pkg-config",
- "rustix 1.1.2",
- "thiserror 2.0.17",
- "wayland-backend",
- "wayland-client",
- "wayland-csd-frame",
- "wayland-cursor",
- "wayland-protocols",
- "wayland-protocols-experimental",
- "wayland-protocols-misc",
- "wayland-protocols-wlr",
- "wayland-scanner",
- "xkbcommon 0.8.0",
- "xkeysym",
-]
-
[[package]]
name = "smithay-clipboard"
-version = "0.8.0"
-source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-5#5a3007def49eb678d1144850c9ee04b80707c56a"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846"
dependencies = [
"libc",
- "raw-window-handle",
- "smithay-client-toolkit 0.19.2",
+ "smithay-client-toolkit",
"wayland-backend",
]
@@ -6592,33 +5276,35 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.6.1"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
+checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
dependencies = [
"libc",
- "windows-sys 0.60.2",
+ "windows-sys 0.59.0",
]
[[package]]
name = "softbuffer"
-version = "0.4.1"
-source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#a3f77e251e7422803f693df6e3fc313c010c4dcb"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08"
dependencies = [
"as-raw-xcb-connection",
"bytemuck",
"cfg_aliases 0.2.1",
- "cocoa",
- "core-graphics",
+ "core-graphics 0.24.0",
"drm",
"fastrand 2.3.0",
"foreign-types",
"js-sys",
"log",
- "memmap2 0.9.8",
- "objc",
- "raw-window-handle",
- "redox_syscall 0.5.18",
+ "memmap2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-quartz-core",
+ "raw-window-handle 0.6.2",
+ "redox_syscall 0.5.17",
"rustix 0.38.44",
"tiny-xlib",
"wasm-bindgen",
@@ -6626,7 +5312,7 @@ dependencies = [
"wayland-client",
"wayland-sys",
"web-sys",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
"x11rb",
]
@@ -6645,7 +5331,7 @@ version = "0.3.0+sdk-1.3.268.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
]
[[package]]
@@ -6687,9 +5373,9 @@ dependencies = [
"futures-intrusive",
"futures-io",
"futures-util",
- "hashbrown 0.15.5",
+ "hashbrown",
"hashlink",
- "indexmap 2.11.4",
+ "indexmap",
"log",
"memchr",
"once_cell",
@@ -6698,7 +5384,7 @@ dependencies = [
"serde_json",
"sha2",
"smallvec",
- "thiserror 2.0.17",
+ "thiserror 2.0.16",
"tokio",
"tokio-stream",
"tracing",
@@ -6751,7 +5437,7 @@ checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526"
dependencies = [
"atoi",
"base64 0.22.1",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"byteorder",
"bytes",
"crc",
@@ -6772,7 +5458,7 @@ dependencies = [
"memchr",
"once_cell",
"percent-encoding",
- "rand 0.8.5",
+ "rand",
"rsa",
"serde",
"sha1",
@@ -6780,7 +5466,7 @@ dependencies = [
"smallvec",
"sqlx-core",
"stringprep",
- "thiserror 2.0.17",
+ "thiserror 2.0.16",
"tracing",
"whoami",
]
@@ -6793,7 +5479,7 @@ checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46"
dependencies = [
"atoi",
"base64 0.22.1",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"byteorder",
"crc",
"dotenvy",
@@ -6810,14 +5496,14 @@ dependencies = [
"md-5",
"memchr",
"once_cell",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_json",
"sha2",
"smallvec",
"sqlx-core",
"stringprep",
- "thiserror 2.0.17",
+ "thiserror 2.0.16",
"tracing",
"whoami",
]
@@ -6841,16 +5527,16 @@ dependencies = [
"serde",
"serde_urlencoded",
"sqlx-core",
- "thiserror 2.0.17",
+ "thiserror 2.0.16",
"tracing",
"url",
]
[[package]]
name = "stable_deref_trait"
-version = "1.2.1"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "static_assertions"
@@ -6903,6 +5589,34 @@ dependencies = [
"syn 2.0.106",
]
+[[package]]
+name = "subsecond"
+version = "0.7.0-rc.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b14ed4d86ab065ffbfdb994fd3e44daf5244b02cb643bd52949d74b703f36605"
+dependencies = [
+ "js-sys",
+ "libc",
+ "libloading",
+ "memfd",
+ "memmap2",
+ "serde",
+ "subsecond-types",
+ "thiserror 2.0.16",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "subsecond-types"
+version = "0.7.0-rc.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "275920a8a5634e47e12253971db85946798795bbe4d9dfc1debf23533d823983"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "subtle"
version = "2.6.1"
@@ -6948,9 +5662,9 @@ dependencies = [
[[package]]
name = "swash"
-version = "0.2.6"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a"
+checksum = "f745de914febc7c9ab4388dfaf94bbc87e69f57bb41133a9b0c84d4be49856f3"
dependencies = [
"skrifa",
"yazi",
@@ -6959,32 +5673,28 @@ dependencies = [
[[package]]
name = "symphonia"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5773a4c030a19d9bfaa090f49746ff35c75dfddfa700df7a5939d5e076a57039"
+checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9"
dependencies = [
"lazy_static",
"symphonia-bundle-flac",
"symphonia-bundle-mp3",
"symphonia-codec-aac",
"symphonia-codec-adpcm",
- "symphonia-codec-alac",
"symphonia-codec-pcm",
"symphonia-codec-vorbis",
"symphonia-core",
- "symphonia-format-caf",
"symphonia-format-isomp4",
- "symphonia-format-mkv",
- "symphonia-format-ogg",
"symphonia-format-riff",
"symphonia-metadata",
]
[[package]]
name = "symphonia-bundle-flac"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c91565e180aea25d9b80a910c546802526ffd0072d0b8974e3ebe59b686c9976"
+checksum = "72e34f34298a7308d4397a6c7fbf5b84c5d491231ce3dd379707ba673ab3bd97"
dependencies = [
"log",
"symphonia-core",
@@ -6994,9 +5704,9 @@ dependencies = [
[[package]]
name = "symphonia-bundle-mp3"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4872dd6bb56bf5eac799e3e957aa1981086c3e613b27e0ac23b176054f7c57ed"
+checksum = "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4"
dependencies = [
"lazy_static",
"log",
@@ -7006,9 +5716,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-aac"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c263845aa86881416849c1729a54c7f55164f8b96111dba59de46849e73a790"
+checksum = "cdbf25b545ad0d3ee3e891ea643ad115aff4ca92f6aec472086b957a58522f70"
dependencies = [
"lazy_static",
"log",
@@ -7017,19 +5727,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-adpcm"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dddc50e2bbea4cfe027441eece77c46b9f319748605ab8f3443350129ddd07f"
-dependencies = [
- "log",
- "symphonia-core",
-]
-
-[[package]]
-name = "symphonia-codec-alac"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8413fa754942ac16a73634c9dfd1500ed5c61430956b33728567f667fdd393ab"
+checksum = "c94e1feac3327cd616e973d5be69ad36b3945f16b06f19c6773fc3ac0b426a0f"
dependencies = [
"log",
"symphonia-core",
@@ -7037,9 +5737,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-pcm"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e89d716c01541ad3ebe7c91ce4c8d38a7cf266a3f7b2f090b108fb0cb031d95"
+checksum = "f395a67057c2ebc5e84d7bb1be71cce1a7ba99f64e0f0f0e303a03f79116f89b"
dependencies = [
"log",
"symphonia-core",
@@ -7047,9 +5747,9 @@ dependencies = [
[[package]]
name = "symphonia-codec-vorbis"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f025837c309cd69ffef572750b4a2257b59552c5399a5e49707cc5b1b85d1c73"
+checksum = "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30"
dependencies = [
"log",
"symphonia-core",
@@ -7058,9 +5758,9 @@ dependencies = [
[[package]]
name = "symphonia-core"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea00cc4f79b7f6bb7ff87eddc065a1066f3a43fe1875979056672c9ef948c2af"
+checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3"
dependencies = [
"arrayvec",
"bitflags 1.3.2",
@@ -7069,22 +5769,11 @@ dependencies = [
"log",
]
-[[package]]
-name = "symphonia-format-caf"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8faf379316b6b6e6bbc274d00e7a592e0d63ff1a7e182ce8ba25e24edd3d096"
-dependencies = [
- "log",
- "symphonia-core",
- "symphonia-metadata",
-]
-
[[package]]
name = "symphonia-format-isomp4"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243739585d11f81daf8dac8d9f3d18cc7898f6c09a259675fc364b382c30e0a5"
+checksum = "abfdf178d697e50ce1e5d9b982ba1b94c47218e03ec35022d9f0e071a16dc844"
dependencies = [
"encoding_rs",
"log",
@@ -7093,36 +5782,11 @@ dependencies = [
"symphonia-utils-xiph",
]
-[[package]]
-name = "symphonia-format-mkv"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "122d786d2c43a49beb6f397551b4a050d8229eaa54c7ddf9ee4b98899b8742d0"
-dependencies = [
- "lazy_static",
- "log",
- "symphonia-core",
- "symphonia-metadata",
- "symphonia-utils-xiph",
-]
-
-[[package]]
-name = "symphonia-format-ogg"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b4955c67c1ed3aa8ae8428d04ca8397fbef6a19b2b051e73b5da8b1435639cb"
-dependencies = [
- "log",
- "symphonia-core",
- "symphonia-metadata",
- "symphonia-utils-xiph",
-]
-
[[package]]
name = "symphonia-format-riff"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2d7c3df0e7d94efb68401d81906eae73c02b40d5ec1a141962c592d0f11a96f"
+checksum = "05f7be232f962f937f4b7115cbe62c330929345434c834359425e043bfd15f50"
dependencies = [
"extended",
"log",
@@ -7132,9 +5796,9 @@ dependencies = [
[[package]]
name = "symphonia-metadata"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36306ff42b9ffe6e5afc99d49e121e0bd62fe79b9db7b9681d48e29fa19e6b16"
+checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c"
dependencies = [
"encoding_rs",
"lazy_static",
@@ -7144,9 +5808,9 @@ dependencies = [
[[package]]
name = "symphonia-utils-xiph"
-version = "0.5.5"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee27c85ab799a338446b68eec77abf42e1a6f1bb490656e121c6e27bfbab9f16"
+checksum = "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe"
dependencies = [
"symphonia-core",
"symphonia-metadata",
@@ -7203,7 +5867,7 @@ dependencies = [
"cfg-expr 0.15.8",
"heck 0.5.0",
"pkg-config",
- "toml 0.8.23",
+ "toml",
"version-compare",
]
@@ -7213,36 +5877,13 @@ version = "7.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb"
dependencies = [
- "cfg-expr 0.20.3",
+ "cfg-expr 0.20.2",
"heck 0.5.0",
"pkg-config",
- "toml 0.8.23",
+ "toml",
"version-compare",
]
-[[package]]
-name = "taffy"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b25026fb8cc9ab51ab9fdabe5d11706796966f6d1c78e19871ef63be2b8f0644"
-dependencies = [
- "arrayvec",
- "grid",
- "serde",
- "slotmap",
-]
-
-[[package]]
-name = "tar"
-version = "0.4.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
-dependencies = [
- "filetime",
- "libc",
- "xattr",
-]
-
[[package]]
name = "target-lexicon"
version = "0.12.16"
@@ -7255,23 +5896,17 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
-[[package]]
-name = "temp-dir"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83176759e9416cf81ee66cb6508dbfe9c96f20b8b56265a39917551c23c70964"
-
[[package]]
name = "tempfile"
-version = "3.23.0"
+version = "3.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
+checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
dependencies = [
"fastrand 2.3.0",
"getrandom 0.3.3",
"once_cell",
- "rustix 1.1.2",
- "windows-sys 0.61.2",
+ "rustix 1.0.8",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -7289,7 +5924,7 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
dependencies = [
- "rustix 1.1.2",
+ "rustix 1.0.8",
"windows-sys 0.60.2",
]
@@ -7300,7 +5935,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
dependencies = [
"unicode-linebreak",
- "unicode-width 0.2.2",
+ "unicode-width 0.2.1",
]
[[package]]
@@ -7314,11 +5949,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "2.0.17"
+version = "2.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
+checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
dependencies = [
- "thiserror-impl 2.0.17",
+ "thiserror-impl 2.0.16",
]
[[package]]
@@ -7334,9 +5969,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
-version = "2.0.17"
+version = "2.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
+checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
dependencies = [
"proc-macro2",
"quote",
@@ -7354,23 +5989,20 @@ dependencies = [
[[package]]
name = "tiff"
-version = "0.10.3"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
dependencies = [
- "fax",
"flate2",
- "half",
- "quick-error",
+ "jpeg-decoder",
"weezl",
- "zune-jpeg",
]
[[package]]
name = "time"
-version = "0.3.44"
+version = "0.3.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
+checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
dependencies = [
"deranged",
"itoa",
@@ -7385,15 +6017,15 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.6"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
+checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
[[package]]
name = "time-macros"
-version = "0.2.24"
+version = "0.2.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
+checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
dependencies = [
"num-conv",
"time-core",
@@ -7410,7 +6042,7 @@ dependencies = [
"bytemuck",
"cfg-if",
"log",
- "png 0.17.16",
+ "png",
"tiny-skia-path",
]
@@ -7475,11 +6107,9 @@ dependencies = [
"libc",
"mio",
"pin-project-lite",
- "signal-hook-registry",
"slab",
- "socket2 0.6.1",
+ "socket2 0.6.0",
"tokio-macros",
- "tracing",
"windows-sys 0.59.0",
]
@@ -7505,15 +6135,6 @@ dependencies = [
"tokio",
]
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
[[package]]
name = "toml"
version = "0.8.23"
@@ -7522,7 +6143,7 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
dependencies = [
"serde",
"serde_spanned",
- "toml_datetime 0.6.11",
+ "toml_datetime",
"toml_edit 0.22.27",
]
@@ -7535,23 +6156,14 @@ dependencies = [
"serde",
]
-[[package]]
-name = "toml_datetime"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
-dependencies = [
- "serde_core",
-]
-
[[package]]
name = "toml_edit"
version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.11.4",
- "toml_datetime 0.6.11",
+ "indexmap",
+ "toml_datetime",
"winnow 0.5.40",
]
@@ -7561,32 +6173,11 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [
- "indexmap 2.11.4",
+ "indexmap",
"serde",
"serde_spanned",
- "toml_datetime 0.6.11",
- "winnow 0.7.13",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.23.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
-dependencies = [
- "indexmap 2.11.4",
- "toml_datetime 0.7.3",
- "toml_parser",
- "winnow 0.7.13",
-]
-
-[[package]]
-name = "toml_parser"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
-dependencies = [
- "winnow 0.7.13",
+ "toml_datetime",
+ "winnow 0.7.12",
]
[[package]]
@@ -7635,15 +6226,15 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.3.20"
+version = "0.3.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
+checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
dependencies = [
"chrono",
"matchers",
"nu-ansi-term",
"once_cell",
- "regex-automata",
+ "regex",
"sharded-slab",
"smallvec",
"thread_local",
@@ -7653,6 +6244,12 @@ dependencies = [
"tracing-log",
]
+[[package]]
+name = "ttf-parser"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+
[[package]]
name = "ttf-parser"
version = "0.21.1"
@@ -7664,24 +6261,12 @@ name = "ttf-parser"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
-dependencies = [
- "core_maths",
-]
-
-[[package]]
-name = "type-map"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb30dbbd9036155e74adad6812e9898d03ec374946234fbcebd5dfc7b9187b90"
-dependencies = [
- "rustc-hash 2.1.1",
-]
[[package]]
name = "typenum"
-version = "1.19.0"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
+checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
[[package]]
name = "uds_windows"
@@ -7694,31 +6279,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "unic-langid"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28ba52c9b05311f4f6e62d5d9d46f094bd6e84cb8df7b3ef952748d752a7d05"
-dependencies = [
- "unic-langid-impl",
-]
-
-[[package]]
-name = "unic-langid-impl"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dce1bf08044d4b7a94028c93786f8566047edc11110595914de93362559bc658"
-dependencies = [
- "serde",
- "tinystr",
-]
-
-[[package]]
-name = "unicase"
-version = "2.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
-
[[package]]
name = "unicode-bidi"
version = "0.3.18"
@@ -7731,29 +6291,17 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86"
-[[package]]
-name = "unicode-bidi-mirroring"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe"
-
[[package]]
name = "unicode-ccc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656"
-[[package]]
-name = "unicode-ccc"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e"
-
[[package]]
name = "unicode-ident"
-version = "1.0.19"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
+checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
[[package]]
name = "unicode-linebreak"
@@ -7802,21 +6350,21 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unicode-width"
-version = "0.2.2"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
+checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
[[package]]
-name = "unicode-xid"
-version = "0.2.6"
+name = "unty"
+version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
+checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae"
[[package]]
name = "url"
-version = "2.5.7"
+version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
dependencies = [
"form_urlencoded",
"idna",
@@ -7840,12 +6388,12 @@ dependencies = [
"data-url",
"flate2",
"fontdb 0.18.0",
- "imagesize 0.12.0",
+ "imagesize",
"kurbo 0.11.3",
"log",
"pico-args",
"roxmltree",
- "rustybuzz 0.14.1",
+ "rustybuzz",
"simplecss",
"siphasher",
"strict-num",
@@ -7857,39 +6405,6 @@ dependencies = [
"xmlwriter",
]
-[[package]]
-name = "usvg"
-version = "0.45.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80be9b06fbae3b8b303400ab20778c80bbaf338f563afe567cf3c9eea17b47ef"
-dependencies = [
- "base64 0.22.1",
- "data-url",
- "flate2",
- "fontdb 0.23.0",
- "imagesize 0.13.0",
- "kurbo 0.11.3",
- "log",
- "pico-args",
- "roxmltree",
- "rustybuzz 0.20.1",
- "simplecss",
- "siphasher",
- "strict-num",
- "svgtypes",
- "tiny-skia-path",
- "unicode-bidi",
- "unicode-script",
- "unicode-vo",
- "xmlwriter",
-]
-
-[[package]]
-name = "utf8-width"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
-
[[package]]
name = "utf8_iter"
version = "1.0.4"
@@ -7919,6 +6434,12 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
+[[package]]
+name = "value-bag"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5"
+
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -7937,6 +6458,12 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+[[package]]
+name = "virtue"
+version = "0.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1"
+
[[package]]
name = "waker-fn"
version = "1.2.0"
@@ -7961,20 +6488,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
[[package]]
name = "wasi"
-version = "0.14.7+wasi-0.2.4"
+version = "0.14.2+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c"
+checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
dependencies = [
- "wasip2",
-]
-
-[[package]]
-name = "wasip2"
-version = "1.0.1+wasi-0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
-dependencies = [
- "wit-bindgen",
+ "wit-bindgen-rt",
]
[[package]]
@@ -7985,22 +6503,21 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]]
name = "wasm-bindgen"
-version = "0.2.104"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d"
+checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
dependencies = [
"cfg-if",
"once_cell",
"rustversion",
"wasm-bindgen-macro",
- "wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.104"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19"
+checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
dependencies = [
"bumpalo",
"log",
@@ -8012,9 +6529,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.54"
+version = "0.4.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c"
+checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
dependencies = [
"cfg-if",
"js-sys",
@@ -8025,9 +6542,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.104"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119"
+checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -8035,9 +6552,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.104"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7"
+checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
@@ -8048,26 +6565,25 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.104"
+version = "0.2.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1"
+checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
dependencies = [
"unicode-ident",
]
[[package]]
-name = "wasm-timer"
-version = "0.2.5"
+name = "wasmtimer"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446"
dependencies = [
"futures",
"js-sys",
- "parking_lot 0.11.2",
+ "parking_lot",
"pin-utils",
+ "slab",
"wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
]
[[package]]
@@ -8078,7 +6594,7 @@ checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35"
dependencies = [
"cc",
"downcast-rs",
- "rustix 1.1.2",
+ "rustix 1.0.8",
"scoped-tls",
"smallvec",
"wayland-sys",
@@ -8090,8 +6606,8 @@ version = "0.31.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d"
dependencies = [
- "bitflags 2.9.4",
- "rustix 1.1.2",
+ "bitflags 2.9.2",
+ "rustix 1.0.8",
"wayland-backend",
"wayland-scanner",
]
@@ -8102,7 +6618,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"cursor-icon",
"wayland-backend",
]
@@ -8113,7 +6629,7 @@ version = "0.31.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29"
dependencies = [
- "rustix 1.1.2",
+ "rustix 1.0.8",
"wayland-client",
"xcursor",
]
@@ -8124,37 +6640,10 @@ version = "0.32.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"wayland-backend",
"wayland-client",
"wayland-scanner",
- "wayland-server",
-]
-
-[[package]]
-name = "wayland-protocols-experimental"
-version = "20250721.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1"
-dependencies = [
- "bitflags 2.9.4",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-protocols-misc"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfe33d551eb8bffd03ff067a8b44bb963919157841a99957151299a6307d19c"
-dependencies = [
- "bitflags 2.9.4",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-scanner",
]
[[package]]
@@ -8163,7 +6652,7 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"wayland-backend",
"wayland-client",
"wayland-protocols",
@@ -8176,12 +6665,11 @@ version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"wayland-backend",
"wayland-client",
"wayland-protocols",
"wayland-scanner",
- "wayland-server",
]
[[package]]
@@ -8195,19 +6683,6 @@ dependencies = [
"quote",
]
-[[package]]
-name = "wayland-server"
-version = "0.31.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcbd4f3aba6c9fba70445ad2a484c0ef0356c1a9459b1e8e435bedc1971a6222"
-dependencies = [
- "bitflags 2.9.4",
- "downcast-rs",
- "rustix 1.1.2",
- "wayland-backend",
- "wayland-scanner",
-]
-
[[package]]
name = "wayland-sys"
version = "0.31.7"
@@ -8222,9 +6697,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.81"
+version = "0.3.77"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120"
+checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -8248,19 +6723,23 @@ checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3"
[[package]]
name = "wgpu"
-version = "22.1.0"
+version = "26.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433"
+checksum = "70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798"
dependencies = [
"arrayvec",
- "cfg_aliases 0.1.1",
+ "bitflags 2.9.2",
+ "cfg-if",
+ "cfg_aliases 0.2.1",
"document-features",
+ "hashbrown",
"js-sys",
"log",
"naga",
- "parking_lot 0.12.5",
+ "parking_lot",
+ "portable-atomic",
"profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"smallvec",
"static_assertions",
"wasm-bindgen",
@@ -8273,50 +6752,84 @@ dependencies = [
[[package]]
name = "wgpu-core"
-version = "22.1.0"
+version = "26.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a"
+checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9"
dependencies = [
"arrayvec",
+ "bit-set",
"bit-vec",
- "bitflags 2.9.4",
- "cfg_aliases 0.1.1",
+ "bitflags 2.9.2",
+ "cfg_aliases 0.2.1",
"document-features",
- "indexmap 2.11.4",
+ "hashbrown",
+ "indexmap",
"log",
"naga",
"once_cell",
- "parking_lot 0.12.5",
+ "parking_lot",
+ "portable-atomic",
"profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"rustc-hash 1.1.0",
"smallvec",
- "thiserror 1.0.69",
+ "thiserror 2.0.16",
+ "wgpu-core-deps-apple",
+ "wgpu-core-deps-emscripten",
+ "wgpu-core-deps-windows-linux-android",
"wgpu-hal",
"wgpu-types",
]
[[package]]
-name = "wgpu-hal"
-version = "22.0.0"
+name = "wgpu-core-deps-apple"
+version = "26.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f"
+checksum = "18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf"
+dependencies = [
+ "wgpu-hal",
+]
+
+[[package]]
+name = "wgpu-core-deps-emscripten"
+version = "26.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7670e390f416006f746b4600fdd9136455e3627f5bd763abf9a65daa216dd2d"
+dependencies = [
+ "wgpu-hal",
+]
+
+[[package]]
+name = "wgpu-core-deps-windows-linux-android"
+version = "26.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14"
+dependencies = [
+ "wgpu-hal",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "26.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7df2c64ac282a91ad7662c90bc4a77d4a2135bc0b2a2da5a4d4e267afc034b9e"
dependencies = [
"android_system_properties",
"arrayvec",
"ash",
"bit-set",
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"block",
- "cfg_aliases 0.1.1",
- "core-graphics-types",
- "d3d12",
+ "bytemuck",
+ "cfg-if",
+ "cfg_aliases 0.2.1",
+ "core-graphics-types 0.2.0",
"glow",
"glutin_wgl_sys",
"gpu-alloc",
"gpu-allocator",
"gpu-descriptor",
- "hassle-rs",
+ "hashbrown",
"js-sys",
"khronos-egl",
"libc",
@@ -8324,31 +6837,36 @@ dependencies = [
"log",
"metal",
"naga",
- "ndk-sys 0.5.0+25.2.9519653",
+ "ndk-sys 0.6.0+11769913",
"objc",
- "once_cell",
- "parking_lot 0.12.5",
+ "ordered-float",
+ "parking_lot",
+ "portable-atomic",
+ "portable-atomic-util",
"profiling",
"range-alloc",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"renderdoc-sys",
- "rustc-hash 1.1.0",
"smallvec",
- "thiserror 1.0.69",
+ "thiserror 2.0.16",
"wasm-bindgen",
"web-sys",
"wgpu-types",
- "winapi",
+ "windows 0.58.0",
+ "windows-core 0.58.0",
]
[[package]]
name = "wgpu-types"
-version = "22.0.0"
+version = "26.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d"
+checksum = "eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
+ "bytemuck",
"js-sys",
+ "log",
+ "thiserror 2.0.16",
"web-sys",
]
@@ -8362,12 +6880,6 @@ dependencies = [
"wasite",
]
-[[package]]
-name = "widestring"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471"
-
[[package]]
name = "winapi"
version = "0.3.9"
@@ -8386,11 +6898,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
-version = "0.1.11"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22"
dependencies = [
- "windows-sys 0.61.2",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -8402,28 +6914,17 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window_clipboard"
version = "0.4.1"
-source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13-2#6b9faab87bea9cebec6ae036906fd67fed254f5f"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
dependencies = [
"clipboard-win",
"clipboard_macos",
"clipboard_wayland",
"clipboard_x11",
- "dnd",
- "mime 0.1.0",
- "raw-window-handle",
+ "raw-window-handle 0.6.2",
"thiserror 1.0.69",
]
-[[package]]
-name = "windows"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
-dependencies = [
- "windows-core 0.52.0",
- "windows-targets 0.52.6",
-]
-
[[package]]
name = "windows"
version = "0.54.0"
@@ -8431,17 +6932,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
dependencies = [
"windows-core 0.54.0",
- "windows-implement 0.53.0",
- "windows-interface 0.53.0",
"windows-targets 0.52.6",
]
[[package]]
-name = "windows-core"
-version = "0.52.0"
+name = "windows"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
dependencies = [
+ "windows-core 0.58.0",
"windows-targets 0.52.6",
]
@@ -8457,22 +6957,35 @@ dependencies = [
[[package]]
name = "windows-core"
-version = "0.62.2"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
+checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
dependencies = [
- "windows-implement 0.60.2",
- "windows-interface 0.59.3",
+ "windows-implement 0.58.0",
+ "windows-interface 0.58.0",
+ "windows-result 0.2.0",
+ "windows-strings 0.1.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
+dependencies = [
+ "windows-implement 0.60.0",
+ "windows-interface 0.59.1",
"windows-link",
- "windows-result 0.4.1",
- "windows-strings",
+ "windows-result 0.3.4",
+ "windows-strings 0.4.2",
]
[[package]]
name = "windows-implement"
-version = "0.53.0"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd"
+checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
@@ -8481,9 +6994,9 @@ dependencies = [
[[package]]
name = "windows-implement"
-version = "0.60.2"
+version = "0.60.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
+checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
dependencies = [
"proc-macro2",
"quote",
@@ -8492,9 +7005,9 @@ dependencies = [
[[package]]
name = "windows-interface"
-version = "0.53.0"
+version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60"
+checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
@@ -8503,9 +7016,9 @@ dependencies = [
[[package]]
name = "windows-interface"
-version = "0.59.3"
+version = "0.59.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
+checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
dependencies = [
"proc-macro2",
"quote",
@@ -8514,9 +7027,9 @@ dependencies = [
[[package]]
name = "windows-link"
-version = "0.2.1"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
[[package]]
name = "windows-result"
@@ -8529,18 +7042,37 @@ dependencies = [
[[package]]
name = "windows-result"
-version = "0.4.1"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
+checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-strings"
-version = "0.5.1"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
+checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
+dependencies = [
+ "windows-result 0.2.0",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
dependencies = [
"windows-link",
]
@@ -8587,16 +7119,7 @@ version = "0.60.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
dependencies = [
- "windows-targets 0.53.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.61.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
-dependencies = [
- "windows-link",
+ "windows-targets 0.53.3",
]
[[package]]
@@ -8647,19 +7170,19 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.53.5"
+version = "0.53.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
+checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91"
dependencies = [
"windows-link",
- "windows_aarch64_gnullvm 0.53.1",
- "windows_aarch64_msvc 0.53.1",
- "windows_i686_gnu 0.53.1",
- "windows_i686_gnullvm 0.53.1",
- "windows_i686_msvc 0.53.1",
- "windows_x86_64_gnu 0.53.1",
- "windows_x86_64_gnullvm 0.53.1",
- "windows_x86_64_msvc 0.53.1",
+ "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]]
@@ -8682,9 +7205,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
+checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
[[package]]
name = "windows_aarch64_msvc"
@@ -8706,9 +7229,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
+checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
[[package]]
name = "windows_i686_gnu"
@@ -8730,9 +7253,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnu"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
+checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
[[package]]
name = "windows_i686_gnullvm"
@@ -8742,9 +7265,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_gnullvm"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
+checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
[[package]]
name = "windows_i686_msvc"
@@ -8766,9 +7289,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_i686_msvc"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
+checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
[[package]]
name = "windows_x86_64_gnu"
@@ -8790,9 +7313,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
+checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -8814,9 +7337,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
+checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
[[package]]
name = "windows_x86_64_msvc"
@@ -8838,44 +7361,44 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.53.1"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
+checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
[[package]]
name = "winit"
-version = "0.30.5"
-source = "git+https://github.com/pop-os/winit.git?tag=iced-xdg-surface-0.13-rc#8dfaba290f9a00d3e13be71f1e6f438889cf5546"
+version = "0.30.8"
+source = "git+https://github.com/iced-rs/winit.git?rev=11414b6aa45699f038114e61b4ddf5102b2d3b4b#11414b6aa45699f038114e61b4ddf5102b2d3b4b"
dependencies = [
"ahash",
"android-activity",
"atomic-waker",
- "bitflags 2.9.4",
- "block2 0.5.1",
+ "bitflags 2.9.2",
+ "block2",
"bytemuck",
- "calloop 0.13.0",
+ "calloop",
"cfg_aliases 0.2.1",
"concurrent-queue",
- "core-foundation",
- "core-graphics",
+ "core-foundation 0.9.4",
+ "core-graphics 0.23.2",
"cursor-icon",
"dpi",
"js-sys",
"libc",
- "memmap2 0.9.8",
- "ndk",
- "objc2 0.5.2",
- "objc2-app-kit 0.2.2",
- "objc2-foundation 0.2.2",
+ "memmap2",
+ "ndk 0.9.0",
+ "objc2",
+ "objc2-app-kit",
+ "objc2-foundation",
"objc2-ui-kit",
"orbclient",
"percent-encoding",
"pin-project",
- "raw-window-handle",
- "redox_syscall 0.5.18",
+ "raw-window-handle 0.6.2",
+ "redox_syscall 0.4.1",
"rustix 0.38.44",
"sctk-adwaita",
- "smithay-client-toolkit 0.19.2",
+ "smithay-client-toolkit",
"smol_str",
"tracing",
"unicode-segmentation",
@@ -8904,27 +7427,31 @@ dependencies = [
[[package]]
name = "winnow"
-version = "0.7.13"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
+checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
dependencies = [
"memchr",
]
[[package]]
-name = "wio"
-version = "0.2.2"
+name = "winreg"
+version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
dependencies = [
- "winapi",
+ "cfg-if",
+ "windows-sys 0.48.0",
]
[[package]]
-name = "wit-bindgen"
-version = "0.46.0"
+name = "wit-bindgen-rt"
+version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
+checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
+dependencies = [
+ "bitflags 2.9.2",
+]
[[package]]
name = "writeable"
@@ -8945,35 +7472,24 @@ dependencies = [
[[package]]
name = "x11rb"
-version = "0.13.2"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
+checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
dependencies = [
"as-raw-xcb-connection",
"gethostname",
"libc",
"libloading",
"once_cell",
- "rustix 1.1.2",
+ "rustix 0.38.44",
"x11rb-protocol",
- "xcursor",
]
[[package]]
name = "x11rb-protocol"
-version = "0.13.2"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
-
-[[package]]
-name = "xattr"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
-dependencies = [
- "libc",
- "rustix 1.1.2",
-]
+checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
[[package]]
name = "xcursor"
@@ -8987,12 +7503,6 @@ version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
-[[package]]
-name = "xdg"
-version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5"
-
[[package]]
name = "xdg-home"
version = "1.3.0"
@@ -9003,46 +7513,13 @@ dependencies = [
"windows-sys 0.59.0",
]
-[[package]]
-name = "xkbcommon"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
-dependencies = [
- "libc",
- "memmap2 0.8.0",
- "xkeysym",
-]
-
-[[package]]
-name = "xkbcommon"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9"
-dependencies = [
- "libc",
- "memmap2 0.9.8",
- "xkeysym",
-]
-
-[[package]]
-name = "xkbcommon"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a974f48060a14e95705c01f24ad9c3345022f4d97441b8a36beb7ed5c4a02d"
-dependencies = [
- "libc",
- "memmap2 0.9.8",
- "xkeysym",
-]
-
[[package]]
name = "xkbcommon-dl"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.9.2",
"dlib",
"log",
"once_cell",
@@ -9054,9 +7531,6 @@ name = "xkeysym"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
-dependencies = [
- "bytemuck",
-]
[[package]]
name = "xml-rs"
@@ -9082,17 +7556,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5"
-[[package]]
-name = "yeslogic-fontconfig-sys"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd"
-dependencies = [
- "dlib",
- "once_cell",
- "pkg-config",
-]
-
[[package]]
name = "yoke"
version = "0.8.0"
@@ -9124,9 +7587,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
dependencies = [
"async-broadcast 0.5.1",
+ "async-executor",
+ "async-fs 1.6.0",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
"async-process 1.8.1",
"async-recursion",
+ "async-task",
"async-trait",
+ "blocking",
"byteorder",
"derivative",
"enumflags2",
@@ -9138,12 +7607,11 @@ dependencies = [
"nix 0.26.4",
"once_cell",
"ordered-stream",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_repr",
"sha1",
"static_assertions",
- "tokio",
"tracing",
"uds_windows",
"winapi",
@@ -9155,15 +7623,15 @@ dependencies = [
[[package]]
name = "zbus"
-version = "5.11.0"
+version = "5.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d07e46d035fb8e375b2ce63ba4e4ff90a7f73cf2ffb0138b29e1158d2eaadf7"
+checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad"
dependencies = [
"async-broadcast 0.7.2",
"async-executor",
- "async-io 2.6.0",
+ "async-io 2.5.0",
"async-lock 3.4.1",
- "async-process 2.5.0",
+ "async-process 2.4.0",
"async-recursion",
"async-task",
"async-trait",
@@ -9177,14 +7645,13 @@ dependencies = [
"ordered-stream",
"serde",
"serde_repr",
- "tokio",
"tracing",
"uds_windows",
- "windows-sys 0.60.2",
- "winnow 0.7.13",
- "zbus_macros 5.11.0",
+ "windows-sys 0.59.0",
+ "winnow 0.7.12",
+ "zbus_macros 5.9.0",
"zbus_names 4.2.0",
- "zvariant 5.7.0",
+ "zvariant 5.6.0",
]
[[package]]
@@ -9203,17 +7670,17 @@ dependencies = [
[[package]]
name = "zbus_macros"
-version = "5.11.0"
+version = "5.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e797a9c847ed3ccc5b6254e8bcce056494b375b511b3d6edcec0aeb4defaca"
+checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659"
dependencies = [
- "proc-macro-crate 3.4.0",
+ "proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
"syn 2.0.106",
"zbus_names 4.2.0",
- "zvariant 5.7.0",
- "zvariant_utils 3.2.1",
+ "zvariant 5.6.0",
+ "zvariant_utils 3.2.0",
]
[[package]]
@@ -9235,8 +7702,8 @@ checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
dependencies = [
"serde",
"static_assertions",
- "winnow 0.7.13",
- "zvariant 5.7.0",
+ "winnow 0.7.12",
+ "zvariant 5.6.0",
]
[[package]]
@@ -9247,18 +7714,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
[[package]]
name = "zerocopy"
-version = "0.8.27"
+version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
+checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.27"
+version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
dependencies = [
"proc-macro2",
"quote",
@@ -9288,9 +7755,9 @@ dependencies = [
[[package]]
name = "zeroize"
-version = "1.8.2"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
[[package]]
name = "zerotrie"
@@ -9325,34 +7792,6 @@ dependencies = [
"syn 2.0.106",
]
-[[package]]
-name = "zstd"
-version = "0.13.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
-dependencies = [
- "zstd-safe",
-]
-
-[[package]]
-name = "zstd-safe"
-version = "7.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
-dependencies = [
- "zstd-sys",
-]
-
-[[package]]
-name = "zstd-sys"
-version = "2.0.16+zstd.1.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748"
-dependencies = [
- "cc",
- "pkg-config",
-]
-
[[package]]
name = "zune-core"
version = "0.4.12"
@@ -9370,9 +7809,9 @@ dependencies = [
[[package]]
name = "zune-jpeg"
-version = "0.4.21"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
+checksum = "fc1f7e205ce79eb2da3cd71c5f55f3589785cb7c79f6a03d1c8d1491bda5d089"
dependencies = [
"zune-core",
]
@@ -9388,22 +7827,23 @@ dependencies = [
"libc",
"serde",
"static_assertions",
+ "url",
"zvariant_derive 3.15.2",
]
[[package]]
name = "zvariant"
-version = "5.7.0"
+version = "5.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "999dd3be73c52b1fccd109a4a81e4fcd20fab1d3599c8121b38d04e1419498db"
+checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f"
dependencies = [
"endi",
"enumflags2",
"serde",
"url",
- "winnow 0.7.13",
- "zvariant_derive 5.7.0",
- "zvariant_utils 3.2.1",
+ "winnow 0.7.12",
+ "zvariant_derive 5.6.0",
+ "zvariant_utils 3.2.0",
]
[[package]]
@@ -9421,15 +7861,15 @@ dependencies = [
[[package]]
name = "zvariant_derive"
-version = "5.7.0"
+version = "5.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6643fd0b26a46d226bd90d3f07c1b5321fe9bb7f04673cb37ac6d6883885b68e"
+checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208"
dependencies = [
- "proc-macro-crate 3.4.0",
+ "proc-macro-crate 3.3.0",
"proc-macro2",
"quote",
"syn 2.0.106",
- "zvariant_utils 3.2.1",
+ "zvariant_utils 3.2.0",
]
[[package]]
@@ -9445,13 +7885,14 @@ dependencies = [
[[package]]
name = "zvariant_utils"
-version = "3.2.1"
+version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599"
+checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34"
dependencies = [
"proc-macro2",
"quote",
"serde",
+ "static_assertions",
"syn 2.0.106",
- "winnow 0.7.13",
+ "winnow 0.7.12",
]
diff --git a/Cargo.toml b/Cargo.toml
index 88b7cef..943bbd3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,9 +8,12 @@ description = "A cli presentation system"
[dependencies]
clap = { version = "4.5.20", features = ["debug", "derive"] }
+# libcosmic = { git = "https://github.com/pop-os/libcosmic", default-features = false, features = ["debug", "winit", "desktop", "winit_wgpu", "winit_tokio", "tokio", "rfd", "dbus-config", "a11y", "wgpu", "multi-window"] }
+lexpr = "0.2.7"
miette = { version = "7.2.0", features = ["fancy"] }
pretty_assertions = "1.4.1"
serde = { version = "1.0.213", features = ["derive"] }
+serde-lexpr = "0.1.3"
tracing = "0.1.40"
tracing-log = "0.2.0"
tracing-subscriber = { version = "0.3.18", features = ["fmt", "std", "chrono", "time", "local-time", "env-filter"] }
@@ -18,10 +21,10 @@ strum = "0.26.3"
strum_macros = "0.26.4"
ron = "0.8.1"
sqlx = { version = "0.8.2", features = ["sqlite", "runtime-tokio"] }
-dirs = "6.0.0"
+dirs = "5.0.1"
tokio = "1.41.1"
crisp = { git = "https://git.tfcconnection.org/chris/crisp", version = "0.1.3" }
-rodio = { version = "0.21.1", features = ["symphonia-all", "tracing"] }
+rodio = { version = "0.20.1", features = ["symphonia-all", "tracing"] }
gstreamer = "0.23"
gstreamer-app = "0.23"
# gstreamer-video = "0.23"
@@ -30,30 +33,23 @@ gstreamer-app = "0.23"
url = "2"
colors-transform = "0.2.11"
rayon = "1.11.0"
-resvg = "0.45.1"
-image = "0.25.8"
-rapidhash = "4.0.0"
-rapidfuzz = "0.5.0"
-# dragking = { git = "https://github.com/airstrike/dragking" }
+# resvg = "0.45.1"
# femtovg = { version = "0.16.0", features = ["wgpu"] }
# wgpu = "26.0.1"
# mupdf = "0.5.0"
-mupdf = { version = "0.5.0", git = "https://github.com/messense/mupdf-rs", rev="2425c1405b326165b06834dcc1ca859015f92787"}
-tar = "0.4.44"
-zstd = "0.13.3"
-fastrand = "2.3.0"
+rfd = { version = "0.12.1", features = ["xdg-portal"], default-features = false }
+derive_setters = "0.1.8"
+freedesktop-icons = "0.4.0"
-# rfd = { version = "0.15.4", default-features = false, features = ["xdg-portal"] }
-
-[dependencies.libcosmic]
-git = "https://github.com/pop-os/libcosmic"
-default-features = false
-features = ["debug", "winit", "desktop", "winit_wgpu", "winit_tokio", "tokio", "wayland", "rfd", "dbus-config", "a11y", "wgpu", "multi-window", "process"]
+[dependencies.iced]
+git = "https://github.com/iced-rs/iced"
+branch = "master"
+features = ["wgpu", "image", "advanced", "svg", "canvas", "hot", "debug", "lazy", "tokio"]
[dependencies.iced_video_player]
-git = "https://github.com/jackpot51/iced_video_player.git"
-branch = "cosmic"
-features = ["wgpu"]
+git = "https://git.tfcconnection.org/chris/iced_video_player"
+branch = "master"
+# branch = "cosmic"
# [profile.dev]
# opt-level = 3
diff --git a/flake.lock b/flake.lock
index d60478a..d20281c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -6,11 +6,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
- "lastModified": 1759214609,
- "narHash": "sha256-+V3SeMjAMd9j9JTECk9oc0gWhtsk79rFEbYf/tHjywo=",
+ "lastModified": 1755585599,
+ "narHash": "sha256-tl/0cnsqB/Yt7DbaGMel2RLa7QG5elA8lkaOXli6VdY=",
"owner": "nix-community",
"repo": "fenix",
- "rev": "f93a2d7225bc7a93d3379acff8fe722e21d97852",
+ "rev": "6ed03ef4c8ec36d193c18e06b9ecddde78fb7e42",
"type": "github"
},
"original": {
@@ -80,11 +80,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1759036355,
- "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
+ "lastModified": 1755186698,
+ "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
+ "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
"type": "github"
},
"original": {
@@ -112,11 +112,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1759036355,
- "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
+ "lastModified": 1755615617,
+ "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
+ "rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github"
},
"original": {
@@ -137,11 +137,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
- "lastModified": 1759134797,
- "narHash": "sha256-YPi+jL3tx/yC5J5l7/OB7Lnlr9BMTzYnZtm7tRJzUNg=",
+ "lastModified": 1755504847,
+ "narHash": "sha256-VX0B9hwhJypCGqncVVLC+SmeMVd/GAYbJZ0MiiUn2Pk=",
"owner": "rust-lang",
"repo": "rust-analyzer",
- "rev": "062ac7a5451e8e92a32e22a60d86882d6a034f3f",
+ "rev": "a905e3b21b144d77e1b304e49f3264f6f8d4db75",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index ebcd5e0..97f77af 100644
--- a/flake.nix
+++ b/flake.nix
@@ -8,116 +8,95 @@
fenix.url = "github:nix-community/fenix";
};
- outputs =
- inputs:
- with inputs;
- flake-utils.lib.eachDefaultSystem (
- system:
- let
- pkgs = import nixpkgs {
- inherit system;
- overlays = [ fenix.overlays.default ];
- # overlays = [cargo2nix.overlays.default];
- };
- naersk' = pkgs.callPackage naersk { };
- nbi = with pkgs; [
- # Rust tools
- alejandra
- (pkgs.fenix.stable.withComponents [
- "cargo"
- "clippy"
- "rust-src"
- "rustc"
- "rustfmt"
- ])
- rust-analyzer
- vulkan-loader
- wayland
- wayland-protocols
- libxkbcommon
- pkg-config
- sccache
- ];
+ outputs = inputs: with inputs;
+ flake-utils.lib.eachDefaultSystem
+ (system:
+ let
+ pkgs = import nixpkgs {
+ inherit system;
+ overlays = [fenix.overlays.default];
+ # overlays = [cargo2nix.overlays.default];
+ };
+ naersk' = pkgs.callPackage naersk {};
+ nbi = with pkgs; [
+ # Rust tools
+ alejandra
+ (pkgs.fenix.stable.withComponents [
+ "cargo"
+ "clippy"
+ "rust-src"
+ "rustc"
+ "rustfmt"
+ ])
+ rust-analyzer
+ vulkan-loader
+ wayland
+ wayland-protocols
+ libxkbcommon
+ pkg-config
+ sccache
+ ];
- bi = with pkgs; [
- gcc
- stdenv
- gnumake
- gdb
- lldb
- cmake
- clang
- libclang
- makeWrapper
- vulkan-headers
- vulkan-loader
- vulkan-tools
- libGL
- cargo-flamegraph
- bacon
+ bi = with pkgs; [
+ gcc
+ stdenv
+ gnumake
+ gdb
+ lldb
+ cmake
+ makeWrapper
+ vulkan-headers
+ vulkan-loader
+ vulkan-tools
+ libGL
+ cargo-flamegraph
- fontconfig
- glib
- alsa-lib
- gst_all_1.gst-libav
- gst_all_1.gst-plugins-bad
- gst_all_1.gst-plugins-good
- gst_all_1.gst-plugins-ugly
- gst_all_1.gst-plugins-base
- gst_all_1.gst-plugins-rs
- gst_all_1.gst-vaapi
- gst_all_1.gstreamer
- ffmpeg-full
- mupdf
- # yt-dlp
+ fontconfig
+ glib
+ alsa-lib
+ gst_all_1.gst-libav
+ gst_all_1.gst-plugins-bad
+ gst_all_1.gst-plugins-good
+ gst_all_1.gst-plugins-ugly
+ gst_all_1.gst-plugins-base
+ gst_all_1.gst-plugins-rs
+ gst_all_1.gst-vaapi
+ gst_all_1.gstreamer
+ # podofo
+ # mpv
+ ffmpeg-full
+ # yt-dlp
- just
- sqlx-cli
- cargo-watch
- ];
- in
- rec {
- devShell =
- pkgs.mkShell.override
- {
- # stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.clangStdenv;
- }
- {
- nativeBuildInputs = nbi;
- buildInputs = bi;
- LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${
- with pkgs;
- pkgs.lib.makeLibraryPath [
- pkgs.alsa-lib
- pkgs.gst_all_1.gst-libav
- pkgs.gst_all_1.gstreamer
- pkgs.gst_all_1.gst-plugins-bad
- pkgs.gst_all_1.gst-plugins-good
- pkgs.gst_all_1.gst-plugins-ugly
- pkgs.gst_all_1.gst-plugins-base
- pkgs.gst_all_1.gst-plugins-rs
- pkgs.gst_all_1.gst-vaapi
- pkgs.glib
- pkgs.fontconfig
- pkgs.vulkan-loader
- pkgs.wayland
- pkgs.wayland-protocols
- pkgs.libxkbcommon
- pkgs.mupdf
- pkgs.libclang
- ]
- }";
- # LIBCLANG_PATH = "${pkgs.clang}";
- DATABASE_URL = "sqlite:///home/chris/.local/share/lumina/library-db.sqlite3";
- };
- defaultPackage = naersk'.buildPackage {
- src = ./.;
- };
- packages = {
- default = naersk'.buildPackage {
+ just
+ sqlx-cli
+ cargo-watch
+ ];
+ in rec
+ {
+ devShell = pkgs.mkShell.override {
+ # stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.clangStdenv;
+ } {
+ nativeBuildInputs = nbi;
+ buildInputs = bi;
+ LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${
+ with pkgs;
+ pkgs.lib.makeLibraryPath [
+ pkgs.vulkan-loader
+ pkgs.wayland
+ pkgs.wayland-protocols
+ pkgs.libxkbcommon
+ ]
+ }";
+ DATABASE_URL = "sqlite:///home/chris/.local/share/lumina/library-db.sqlite3";
+ };
+ defaultPackage = naersk'.buildPackage {
src = ./.;
};
- };
- }
- );
+ packages = {
+ default = naersk'.buildPackage {
+ src = ./.;
+ };
+ };
+ }
+ );
}
diff --git a/justfile b/justfile
index 1da1804..8eb74f5 100644
--- a/justfile
+++ b/justfile
@@ -8,8 +8,6 @@ build:
sbuild:
RUST_LOG=debug sccache cargo build
run:
- RUST_LOG=debug cargo run -- {{ui}}
-run-file:
RUST_LOG=debug cargo run -- {{ui}} {{file}}
srun:
RUST_LOG=debug sccache cargo run -- {{ui}} {{file}}
@@ -22,6 +20,5 @@ profile:
alias b := build
alias r := run
-alias rf := run-file
alias sr := srun
alias c := clean
diff --git a/migrations/20250925190420_Remove_the_page_count_column_in_presentations_table.sql b/migrations/20250925190420_Remove_the_page_count_column_in_presentations_table.sql
deleted file mode 100644
index b1a6d30..0000000
--- a/migrations/20250925190420_Remove_the_page_count_column_in_presentations_table.sql
+++ /dev/null
@@ -1,3 +0,0 @@
--- Add migration script here
-ALTER TABLE presentations
-DROP COLUMN pageCount;
diff --git a/migrations/20251020184333_add_starting_index_and_ending_index_to_presentations_table.sql b/migrations/20251020184333_add_starting_index_and_ending_index_to_presentations_table.sql
deleted file mode 100644
index abf000f..0000000
--- a/migrations/20251020184333_add_starting_index_and_ending_index_to_presentations_table.sql
+++ /dev/null
@@ -1,6 +0,0 @@
--- Add migration script here
-ALTER TABLE presentations
-ADD COLUMN starting_index INTEGER;
-
-ALTER TABLE presentations
-ADD COLUMN ending_index INTEGER;
diff --git a/readme.org b/readme.org
index e378379..7f7470c 100644
--- a/readme.org
+++ b/readme.org
@@ -4,12 +4,14 @@
Lumina is a presentation app that works from a cli or a UI. The goal is that through a simple text file, you can describe an entire presentation and then load and control it either from the command line, or a UI. The UI also provides user friendly ways of creating the presentation to allow for flexibility for users to make something that works for regular folk as well as developers and nerds.
* Why build this?
+Well for one, I want more experience developing things and I don't have a good tool for this kind of thing on Linux.
+
Primarily, I don't think there is a good tool for this kind of thing on Linux. On Windows and Mac there is ProPresenter or Proclaim. Both amazing presentation software built for churches or worship centers and can be used by others for other things too, but incredible tools. I want to have a similar tool on Linux. The available tools out there now are often old, broken, or very difficult to use. I want something incredibly easy, with very sane or at least very customizable keyboard controls that allow me to quickly build a presentation and make it VERY easy to run it too.
** Features (planned are in parentheses)
- Presents songs lyrics with image and video backgrounds
- Simple song creation with a powerful text parser
-- Present Slides. PDF works. (PowerPoint, and Impress are in not implemented yet)
+- Present Slides (PDF, PowerPoint, and Impress are in not implemented yet)
- (Present Reveal.js slides)
- (Custom slide builder)
- (an intuitive UI) - Still needs A LOT of polish
diff --git a/res/chad.png b/res/chad.png
deleted file mode 100644
index 44f21f3..0000000
Binary files a/res/chad.png and /dev/null differ
diff --git a/res/list-add-above.svg b/res/list-add-above.svg
deleted file mode 100644
index 27f02ba..0000000
--- a/res/list-add-above.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/res/list-add-below.svg b/res/list-add-below.svg
deleted file mode 100644
index 99adb9e..0000000
--- a/res/list-add-below.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/res/split-above.svg b/res/split-above.svg
deleted file mode 100644
index b105436..0000000
--- a/res/split-above.svg
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
diff --git a/res/split-below.svg b/res/split-below.svg
deleted file mode 100644
index 072feb7..0000000
--- a/res/split-below.svg
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
diff --git a/res/text-outline.svg b/res/text-outline.svg
deleted file mode 100644
index 4c12366..0000000
--- a/res/text-outline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/rustfmt.toml b/rustfmt.toml
index 91b451d..0f2a39c 100644
--- a/rustfmt.toml
+++ b/rustfmt.toml
@@ -1,3 +1,3 @@
max_width = 70
-style_edition = "2024"
+# style_edition = "2018"
# version = "Two"
\ No newline at end of file
diff --git a/src/core/file.rs b/src/core/file.rs
index 5b8f917..e3d5c8f 100644
--- a/src/core/file.rs
+++ b/src/core/file.rs
@@ -1,408 +1,356 @@
-use crate::core::{
- kinds::ServiceItemKind, service_items::ServiceItem,
- slide::Background,
-};
-use miette::{IntoDiagnostic, Result};
-use std::{
- fs::{self, File},
- io::Write,
- iter,
- path::{Path, PathBuf},
-};
-use tar::Builder;
+use tar::{Archive, Builder};
use tracing::error;
use zstd::Encoder;
+use std::{fs::{self, File}, iter, path::{Path, PathBuf}};
+use color_eyre::eyre::{eyre, Context, Result};
+use serde_json::Value;
+use sqlx::{query, query_as, FromRow, SqliteConnection};
+use crate::{images::{get_image_from_db, Image}, kinds::ServiceItemKind, model::get_db, presentations::{get_presentation_from_db, PresKind, Presentation}, service_items::ServiceItem, slides::Background, songs::{get_song_from_db, Song}, videos::{get_video_from_db, Video}};
-pub async fn save(
- list: Vec,
- path: impl AsRef,
-) -> Result<()> {
+pub async fn save(list: Vec, path: impl AsRef) -> Result<()> {
let path = path.as_ref();
- let save_file = File::create(path).into_diagnostic()?;
- let ron = process_service_items(&list).await?;
+ let save_file = File::create(path)?;
+ let mut db = get_db().await;
+ let json = process_service_items(&list, &mut db).await?;
+ let archive = store_service_items(&list, &mut db, &save_file, &json).await?;
+ Ok(())
+}
+async fn store_service_items(items: &Vec, db: &mut SqliteConnection, save_file: &File, json: &Value) -> Result<()> {
let encoder = Encoder::new(save_file, 3).unwrap();
let mut tar = Builder::new(encoder);
let mut temp_dir = dirs::data_dir().unwrap();
temp_dir.push("lumina");
let mut s: String =
- iter::repeat_with(fastrand::alphanumeric).take(5).collect();
+ iter::repeat_with(fastrand::alphanumeric)
+ .take(5)
+ .collect();
s.insert_str(0, "temp_");
temp_dir.push(s);
- fs::create_dir_all(&temp_dir).into_diagnostic()?;
- let service_file = temp_dir.join("serviceitems.ron");
- fs::File::create(&service_file).into_diagnostic()?;
- match fs::File::options()
- .read(true)
- .write(true)
- .open(service_file)
- {
- Ok(mut f) => {
- f.write(ron.as_bytes()).into_diagnostic()?;
- }
- Err(e) => {
- error!("There were problems making a file i guess: {e}")
- }
+ fs::create_dir_all(&temp_dir)?;
+ let service_file = temp_dir.join("serviceitems.json");
+ fs::File::create(&service_file)?;
+ match fs::File::options().read(true).write(true).open(service_file) {
+ Ok(f) => {
+ serde_json::to_writer_pretty(f, json)?;
+ },
+ Err(e) => error!("There were problems making a file i guess: {e}"),
};
- // let list list.iter_mut().map(|item| {
- // match item.kind {
- // ServiceItemKind::Song(mut song) => {
- // song.background
- // }
- // }
- // }).collect();
- for item in list {
+ for item in items {
let background;
let audio: Option;
- match &item.kind {
- ServiceItemKind::Song(song) => {
- background = song.background.clone();
- audio = song.audio.clone();
- }
- ServiceItemKind::Image(image) => {
- background = Some(
- Background::try_from(image.path.clone())
- .into_diagnostic()?,
- );
+ match item.kind {
+ ServiceItemKind::Song => {
+ let song = get_song_from_db(item.database_id, db).await?;
+ background = song.background;
+ audio = song.audio;
+ },
+ ServiceItemKind::Image => {
+ let image = get_image_from_db(item.database_id, db).await?;
+ background = Some(Background::try_from(image.path)?);
audio = None;
- }
- ServiceItemKind::Video(video) => {
- background = Some(
- Background::try_from(video.path.clone())
- .into_diagnostic()?,
- );
+ },
+ ServiceItemKind::Video => {
+ let video = get_video_from_db(item.database_id, db).await?;
+ background = Some(Background::try_from(video.path)?);
audio = None;
- }
- ServiceItemKind::Presentation(presentation) => {
- background = Some(
- Background::try_from(presentation.path.clone())
- .into_diagnostic()?,
- );
+ },
+ ServiceItemKind::Presentation(_) => {
+ let presentation = get_presentation_from_db(item.database_id, db).await?;
+ background = Some(Background::try_from(presentation.path)?);
audio = None;
- }
- ServiceItemKind::Content(_slide) => {
+ },
+ ServiceItemKind::Content => {
todo!()
- }
+ },
};
if let Some(file) = audio {
- let audio_file =
- temp_dir.join(file.file_name().expect(
- "Audio file couldn't be added to temp_dir",
- ));
+ let audio_file = temp_dir.join(file.file_name().expect("Audio file couldn't be added to temp_dir"));
if let Ok(file) = file.strip_prefix("file://") {
- fs::File::create(&audio_file).into_diagnostic()?;
- fs::copy(file, audio_file).into_diagnostic()?;
+ fs::File::create(&audio_file).wrap_err("Couldn't create audio file")?;
+ fs::copy(file, audio_file).wrap_err("Audio file could not be copied, the source file doesn't exist not be found");
} else {
- fs::File::create(&audio_file).into_diagnostic()?;
- fs::copy(file, audio_file).into_diagnostic()?;
+ fs::File::create(&audio_file).wrap_err("Couldn't create audio file")?;
+ fs::copy(file, audio_file).wrap_err("Audio file could not be copied, the source file doesn't exist not be found");
}
};
if let Some(file) = background {
- let background_file =
- temp_dir.join(file.path.file_name().expect(
- "Background file couldn't be added to temp_dir",
- ));
+ let background_file = temp_dir.join(file.path.file_name().expect("Background file couldn't be added to temp_dir"));
if let Ok(file) = file.path.strip_prefix("file://") {
- fs::File::create(&background_file)
- .into_diagnostic()?;
- fs::copy(file, background_file).into_diagnostic()?;
+ fs::File::create(&background_file).wrap_err("Couldn't create background file")?;
+ fs::copy(file, background_file).wrap_err("Background file could not be copied, the source file doesn't exist not be found");
} else {
- fs::File::create(&background_file)
- .into_diagnostic()?;
- fs::copy(file.path, background_file)
- .into_diagnostic()?;
+ fs::File::create(&background_file).wrap_err("Couldn't create background file")?;
+ fs::copy(file.path, background_file).wrap_err("Background file could not be copied, the source file doesn't exist not be found");
}
}
}
- tar.append_dir_all(path, temp_dir).into_diagnostic()?;
- tar.finish().into_diagnostic()
+ Ok(())
}
async fn clear_temp_dir(temp_dir: &Path) -> Result<()> {
todo!()
}
-async fn process_service_items(
- items: &Vec,
-) -> Result {
- Ok(items
- .into_iter()
- .filter_map(|item| {
- let ron = ron::ser::to_string(item);
- ron.ok()
- })
- .collect())
+async fn process_service_items(items: &Vec, db: &mut SqliteConnection) -> Result {
+ let mut values: Vec = vec![];
+ for item in items {
+ match item.kind {
+ ServiceItemKind::Song => {
+ let value = process_song(item.database_id, db).await?;
+ values.push(value);
+ },
+ ServiceItemKind::Image => {
+ let value = process_image(item.database_id, db).await?;
+ values.push(value);
+ },
+ ServiceItemKind::Video => {
+ let value = process_video(item.database_id, db).await?;
+ values.push(value);
+ },
+ ServiceItemKind::Presentation(_) => {
+ let value = process_presentation(item.database_id, db).await?;
+ values.push(value);
+ },
+ ServiceItemKind::Content => {
+ todo!()
+ },
+ }
+ }
+ let json = Value::from(values);
+ Ok(json)
}
-// async fn process_song(
-// database_id: i32,
-// db: &mut SqliteConnection,
-// ) -> Result {
-// let song = get_song_from_db(database_id, db).await?;
-// let song_ron = ron::to_value(&song)?;
-// let kind_ron = ron::to_value(ServiceItemKind::Song)?;
-// let json =
-// serde_json::json!({"item": song_json, "kind": kind_json});
-// Ok(json)
-// }
+async fn process_song(database_id: i32, db: &mut SqliteConnection) -> Result {
+ let song = get_song_from_db(database_id, db).await?;
+ let song_json = serde_json::to_value(&song)?;
+ let kind_json = serde_json::to_value(ServiceItemKind::Song)?;
+ let json = serde_json::json!({"item": song_json, "kind": kind_json});
+ Ok(json)
+}
-// async fn process_image(
-// database_id: i32,
-// db: &mut SqliteConnection,
-// ) -> Result {
-// let image = get_image_from_db(database_id, db).await?;
-// let image_json = serde_json::to_value(&image)?;
-// let kind_json = serde_json::to_value(ServiceItemKind::Image)?;
-// let json =
-// serde_json::json!({"item": image_json, "kind": kind_json});
-// Ok(json)
-// }
+async fn process_image(database_id: i32, db: &mut SqliteConnection) -> Result {
+ let image = get_image_from_db(database_id, db).await?;
+ let image_json = serde_json::to_value(&image)?;
+ let kind_json = serde_json::to_value(ServiceItemKind::Image)?;
+ let json = serde_json::json!({"item": image_json, "kind": kind_json});
+ Ok(json)
+}
-// async fn process_video(
-// database_id: i32,
-// db: &mut SqliteConnection,
-// ) -> Result {
-// let video = get_video_from_db(database_id, db).await?;
-// let video_json = serde_json::to_value(&video)?;
-// let kind_json = serde_json::to_value(ServiceItemKind::Video)?;
-// let json =
-// serde_json::json!({"item": video_json, "kind": kind_json});
-// Ok(json)
-// }
+async fn process_video(database_id: i32, db: &mut SqliteConnection) -> Result {
+ let video = get_video_from_db(database_id, db).await?;
+ let video_json = serde_json::to_value(&video)?;
+ let kind_json = serde_json::to_value(ServiceItemKind::Video)?;
+ let json = serde_json::json!({"item": video_json, "kind": kind_json});
+ Ok(json)
+}
-// async fn process_presentation(
-// database_id: i32,
-// db: &mut SqliteConnection,
-// ) -> Result {
-// let presentation =
-// get_presentation_from_db(database_id, db).await?;
-// let presentation_json = serde_json::to_value(&presentation)?;
-// let kind_json = match presentation.kind {
-// PresKind::Html => serde_json::to_value(
-// ServiceItemKind::Presentation(PresKind::Html),
-// )?,
-// PresKind::Pdf => serde_json::to_value(
-// ServiceItemKind::Presentation(PresKind::Pdf),
-// )?,
-// PresKind::Generic => serde_json::to_value(
-// ServiceItemKind::Presentation(PresKind::Generic),
-// )?,
-// };
-// let json = serde_json::json!({"item": presentation_json, "kind": kind_json});
-// Ok(json)
-// }
+async fn process_presentation(database_id: i32, db: &mut SqliteConnection) -> Result {
+ let presentation = get_presentation_from_db(database_id, db).await?;
+ let presentation_json = serde_json::to_value(&presentation)?;
+ let kind_json = match presentation.kind {
+ PresKind::Html => serde_json::to_value(ServiceItemKind::Presentation(PresKind::Html))?,
+ PresKind::Pdf => serde_json::to_value(ServiceItemKind::Presentation(PresKind::Pdf))?,
+ PresKind::Generic => serde_json::to_value(ServiceItemKind::Presentation(PresKind::Generic))?,
+ };
+ let json = serde_json::json!({"item": presentation_json, "kind": kind_json});
+ Ok(json)
+}
-// #[cfg(test)]
-// mod test {
-// use std::path::PathBuf;
+#[cfg(test)]
+mod test {
+ use std::path::PathBuf;
-// use super::*;
-// use fs::canonicalize;
-// use pretty_assertions::assert_eq;
-// use sqlx::Connection;
-// use tracing::debug;
+ use fs::canonicalize;
+ use sqlx::Connection;
+ use pretty_assertions::assert_eq;
+ use tracing::debug;
+ use super::*;
-// async fn get_db() -> SqliteConnection {
-// let mut data = dirs::data_local_dir().unwrap();
-// data.push("lumina");
-// data.push("library-db.sqlite3");
-// let mut db_url = String::from("sqlite://");
-// db_url.push_str(data.to_str().unwrap());
-// SqliteConnection::connect(&db_url).await.expect("problems")
-// }
+ async fn get_db() -> SqliteConnection {
+ let mut data = dirs::data_local_dir().unwrap();
+ data.push("lumina");
+ data.push("library-db.sqlite3");
+ let mut db_url = String::from("sqlite://");
+ db_url.push_str(data.to_str().unwrap());
+ SqliteConnection::connect(&db_url)
+ .await
+ .expect("problems")
+ }
-// #[tokio::test(flavor = "current_thread")]
-// async fn test_process_song() {
-// let mut db = get_db().await;
-// let result = process_song(7, &mut db).await;
-// let json_song_file = PathBuf::from("./test/test_song.json");
-// if let Ok(path) = canonicalize(json_song_file) {
-// debug!(file = ?&path);
-// if let Ok(s) = fs::read_to_string(path) {
-// debug!(s);
-// match result {
-// Ok(json) => assert_eq!(json.to_string(), s),
-// Err(e) => panic!(
-// "There was an error in processing the song: {e}"
-// ),
-// }
-// } else {
-// panic!("String wasn't read from file");
-// }
-// } else {
-// panic!("Cannot find absolute path to test_song.json");
-// }
-// }
+ #[tokio::test(flavor = "current_thread")]
+ async fn test_process_song() {
+ let mut db = get_db().await;
+ let result = process_song(7, &mut db).await;
+ let json_song_file = PathBuf::from("./test/test_song.json");
+ if let Ok(path) = canonicalize(json_song_file) {
+ debug!(file = ?&path);
+ if let Ok(s) = fs::read_to_string(path) {
+ debug!(s);
+ match result {
+ Ok(json) => assert_eq!(json.to_string(), s),
+ Err(e) => panic!("There was an error in processing the song: {e}"),
+ }
+ } else {
+ panic!("String wasn't read from file");
+ }
+ } else {
+ panic!("Cannot find absolute path to test_song.json");
+ }
+ }
-// #[tokio::test(flavor = "current_thread")]
-// async fn test_process_image() {
-// let mut db = get_db().await;
-// let result = process_image(3, &mut db).await;
-// let json_image_file = PathBuf::from("./test/test_image.json");
-// if let Ok(path) = canonicalize(json_image_file) {
-// debug!(file = ?&path);
-// if let Ok(s) = fs::read_to_string(path) {
-// debug!(s);
-// match result {
-// Ok(json) => assert_eq!(json.to_string(), s),
-// Err(e) => panic!(
-// "There was an error in processing the image: {e}"
-// ),
-// }
-// } else {
-// panic!("String wasn't read from file");
-// }
-// } else {
-// panic!("Cannot find absolute path to test_image.json");
-// }
-// }
+ #[tokio::test(flavor = "current_thread")]
+ async fn test_process_image() {
+ let mut db = get_db().await;
+ let result = process_image(3, &mut db).await;
+ let json_image_file = PathBuf::from("./test/test_image.json");
+ if let Ok(path) = canonicalize(json_image_file) {
+ debug!(file = ?&path);
+ if let Ok(s) = fs::read_to_string(path) {
+ debug!(s);
+ match result {
+ Ok(json) => assert_eq!(json.to_string(), s),
+ Err(e) => panic!("There was an error in processing the image: {e}"),
+ }
+ } else {
+ panic!("String wasn't read from file");
+ }
+ } else {
+ panic!("Cannot find absolute path to test_image.json");
+ }
+ }
-// #[tokio::test(flavor = "current_thread")]
-// async fn test_process_video() {
-// let mut db = get_db().await;
-// let result = process_video(73, &mut db).await;
-// let json_video_file = PathBuf::from("./test/test_video.json");
-// if let Ok(path) = canonicalize(json_video_file) {
-// debug!(file = ?&path);
-// if let Ok(s) = fs::read_to_string(path) {
-// debug!(s);
-// match result {
-// Ok(json) => assert_eq!(json.to_string(), s),
-// Err(e) => panic!(
-// "There was an error in processing the video: {e}"
-// ),
-// }
-// } else {
-// panic!("String wasn't read from file");
-// }
-// } else {
-// panic!("Cannot find absolute path to test_video.json");
-// }
-// }
+ #[tokio::test(flavor = "current_thread")]
+ async fn test_process_video() {
+ let mut db = get_db().await;
+ let result = process_video(73, &mut db).await;
+ let json_video_file = PathBuf::from("./test/test_video.json");
+ if let Ok(path) = canonicalize(json_video_file) {
+ debug!(file = ?&path);
+ if let Ok(s) = fs::read_to_string(path) {
+ debug!(s);
+ match result {
+ Ok(json) => assert_eq!(json.to_string(), s),
+ Err(e) => panic!("There was an error in processing the video: {e}"),
+ }
+ } else {
+ panic!("String wasn't read from file");
+ }
+ } else {
+ panic!("Cannot find absolute path to test_video.json");
+ }
+ }
-// #[tokio::test(flavor = "current_thread")]
-// async fn test_process_presentation() {
-// let mut db = get_db().await;
-// let result = process_presentation(54, &mut db).await;
-// let json_presentation_file =
-// PathBuf::from("./test/test_presentation.json");
-// if let Ok(path) = canonicalize(json_presentation_file) {
-// debug!(file = ?&path);
-// if let Ok(s) = fs::read_to_string(path) {
-// debug!(s);
-// match result {
-// Ok(json) => assert_eq!(json.to_string(), s),
-// Err(e) => panic!(
-// "There was an error in processing the presentation: {e}"
-// ),
-// }
-// } else {
-// panic!("String wasn't read from file");
-// }
-// } else {
-// panic!(
-// "Cannot find absolute path to test_presentation.json"
-// );
-// }
-// }
+ #[tokio::test(flavor = "current_thread")]
+ async fn test_process_presentation() {
+ let mut db = get_db().await;
+ let result = process_presentation(54, &mut db).await;
+ let json_presentation_file = PathBuf::from("./test/test_presentation.json");
+ if let Ok(path) = canonicalize(json_presentation_file) {
+ debug!(file = ?&path);
+ if let Ok(s) = fs::read_to_string(path) {
+ debug!(s);
+ match result {
+ Ok(json) => assert_eq!(json.to_string(), s),
+ Err(e) => panic!("There was an error in processing the presentation: {e}"),
+ }
+ } else {
+ panic!("String wasn't read from file");
+ }
+ } else {
+ panic!("Cannot find absolute path to test_presentation.json");
+ }
+ }
-// fn get_items() -> Vec {
-// let items = vec![
-// ServiceItem {
-// database_id: 7,
-// kind: ServiceItemKind::Song,
-// id: 0,
-// },
-// ServiceItem {
-// database_id: 54,
-// kind: ServiceItemKind::Presentation(PresKind::Html),
-// id: 0,
-// },
-// ServiceItem {
-// database_id: 73,
-// kind: ServiceItemKind::Video,
-// id: 0,
-// },
-// ];
-// items
-// }
+ fn get_items() -> Vec {
+ let items = vec![
+ ServiceItem {
+ database_id: 7,
+ kind: ServiceItemKind::Song,
+ id: 0,
+ },
+ ServiceItem {
+ database_id: 54,
+ kind: ServiceItemKind::Presentation(PresKind::Html),
+ id: 0,
+ },
+ ServiceItem {
+ database_id: 73,
+ kind: ServiceItemKind::Video,
+ id: 0,
+ },
+ ];
+ items
+ }
-// #[tokio::test]
-// async fn test_service_items() {
-// let mut db = get_db().await;
-// let items = get_items();
-// let json_item_file =
-// PathBuf::from("./test/test_service_items.json");
-// let result = process_service_items(&items, &mut db).await;
-// if let Ok(path) = canonicalize(json_item_file) {
-// if let Ok(s) = fs::read_to_string(path) {
-// match result {
-// Ok(strings) => assert_eq!(strings.to_string(), s),
-// Err(e) => panic!("There was an error: {e}"),
-// }
-// }
-// }
-// }
+ #[tokio::test]
+ async fn test_service_items() {
+ let mut db = get_db().await;
+ let items = get_items();
+ let json_item_file = PathBuf::from("./test/test_service_items.json");
+ let result = process_service_items(&items, &mut db).await;
+ if let Ok(path) = canonicalize(json_item_file) {
+ if let Ok(s) = fs::read_to_string(path) {
+ match result {
+ Ok(strings) => assert_eq!(strings.to_string(), s),
+ Err(e) => panic!("There was an error: {e}"),
+ }
+ }
+ }
+ }
-// // #[tokio::test]
-// // async fn test_save() {
-// // let path = PathBuf::from("~/dev/lumina/src/rust/core/test.pres");
-// // let list = get_items();
-// // match save(list, path).await {
-// // Ok(_) => assert!(true),
-// // Err(e) => panic!("There was an error: {e}"),
-// // }
-// // }
+ // #[tokio::test]
+ // async fn test_save() {
+ // let path = PathBuf::from("~/dev/lumina/src/rust/core/test.pres");
+ // let list = get_items();
+ // match save(list, path).await {
+ // Ok(_) => assert!(true),
+ // Err(e) => panic!("There was an error: {e}"),
+ // }
+ // }
-// #[tokio::test]
-// async fn test_store() {
-// let path = PathBuf::from(
-// "/home/chris/dev/lumina/src/rust/core/test.pres",
-// );
-// let save_file = match File::create(path) {
-// Ok(f) => f,
-// Err(e) => panic!("Couldn't create save_file: {e}"),
-// };
-// let mut db = get_db().await;
-// let list = get_items();
-// if let Ok(json) = process_service_items(&list, &mut db).await
-// {
-// println!("{:?}", json);
-// match store_service_items(
-// &list, &mut db, &save_file, &json,
-// )
-// .await
-// {
-// Ok(_) => assert!(true),
-// Err(e) => panic!("There was an error: {e}"),
-// }
-// } else {
-// panic!("There was an error getting the json value");
-// }
-// }
+ #[tokio::test]
+ async fn test_store() {
+ let path = PathBuf::from("/home/chris/dev/lumina/src/rust/core/test.pres");
+ let save_file = match File::create(path) {
+ Ok(f) => f,
+ Err(e) => panic!("Couldn't create save_file: {e}"),
+ };
+ let mut db = get_db().await;
+ let list = get_items();
+ if let Ok(json) = process_service_items(&list, &mut db).await {
+ println!("{:?}", json);
+ match store_service_items(&list, &mut db, &save_file, &json).await {
+ Ok(_) => assert!(true),
+ Err(e) => panic!("There was an error: {e}"),
+ }
+ } else {
+ panic!("There was an error getting the json value");
+ }
+ }
-// // #[tokio::test]
-// // async fn test_things() {
-// // let mut temp_dir = dirs::data_dir().unwrap();
-// // temp_dir.push("lumina");
-// // let mut s: String =
-// // iter::repeat_with(fastrand::alphanumeric)
-// // .take(5)
-// // .collect();
-// // s.insert_str(0, "temp_");
-// // temp_dir.push(s);
-// // let _ = fs::create_dir_all(&temp_dir);
-// // let mut db = get_db().await;
-// // let service_file = temp_dir.join("serviceitems.json");
-// // let list = get_items();
-// // if let Ok(json) = process_service_items(&list, &mut db).await {
-// // let _ = fs::File::create(&service_file);
-// // match fs::write(service_file, json.to_string()) {
-// // Ok(_) => assert!(true),
-// // Err(e) => panic!("There was an error: {e}"),
-// // }
-// // } else {
-// // panic!("There was an error getting the json value");
-// // }
-// // }
-// }
+ // #[tokio::test]
+ // async fn test_things() {
+ // let mut temp_dir = dirs::data_dir().unwrap();
+ // temp_dir.push("lumina");
+ // let mut s: String =
+ // iter::repeat_with(fastrand::alphanumeric)
+ // .take(5)
+ // .collect();
+ // s.insert_str(0, "temp_");
+ // temp_dir.push(s);
+ // let _ = fs::create_dir_all(&temp_dir);
+ // let mut db = get_db().await;
+ // let service_file = temp_dir.join("serviceitems.json");
+ // let list = get_items();
+ // if let Ok(json) = process_service_items(&list, &mut db).await {
+ // let _ = fs::File::create(&service_file);
+ // match fs::write(service_file, json.to_string()) {
+ // Ok(_) => assert!(true),
+ // Err(e) => panic!("There was an error: {e}"),
+ // }
+ // } else {
+ // panic!("There was an error getting the json value");
+ // }
+ // }
+}
diff --git a/src/core/images.rs b/src/core/images.rs
index 7e37607..beba760 100644
--- a/src/core/images.rs
+++ b/src/core/images.rs
@@ -10,14 +10,14 @@ use crisp::types::{Keyword, Symbol, Value};
use miette::{IntoDiagnostic, Result};
use serde::{Deserialize, Serialize};
use sqlx::{
- Sqlite, SqliteConnection, SqlitePool, pool::PoolConnection,
- query, query_as,
+ pool::PoolConnection, query, query_as, Sqlite, SqliteConnection,
+ SqlitePool,
};
-use std::path::{Path, PathBuf};
-use tracing::{debug, error};
+use std::path::PathBuf;
+use tracing::error;
#[derive(
- Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize,
+ Clone, Debug, Default, PartialEq, Serialize, Deserialize,
)]
pub struct Image {
pub id: i32,
@@ -25,28 +25,6 @@ pub struct Image {
pub path: PathBuf,
}
-impl From for Image {
- fn from(value: PathBuf) -> Self {
- let title = value
- .file_name()
- .unwrap_or_default()
- .to_str()
- .unwrap_or_default()
- .to_string();
- Self {
- id: 0,
- title,
- path: value.canonicalize().unwrap_or(value),
- }
- }
-}
-
-impl From<&Path> for Image {
- fn from(value: &Path) -> Self {
- Self::from(value.to_owned())
- }
-}
-
impl From<&Image> for Value {
fn from(value: &Image) -> Self {
Self::List(vec![Self::Symbol(Symbol("image".into()))])
@@ -74,9 +52,8 @@ impl Content for Image {
if self.path.exists() {
self.path
.file_name()
- .map_or("Missing image".into(), |f| {
- f.to_string_lossy().to_string()
- })
+ .map(|f| f.to_string_lossy().to_string())
+ .unwrap_or("Missing image".into())
} else {
"Missing image".into()
}
@@ -108,7 +85,7 @@ impl From<&Value> for Image {
let path =
p.to_str().unwrap_or_default().to_string();
let title =
- path.rsplit_once('/').unwrap_or_default().1;
+ path.rsplit_once("/").unwrap_or_default().1;
title.to_string()
});
Self {
@@ -177,51 +154,17 @@ impl Model {
.await;
match result {
Ok(v) => {
- for image in v {
+ for image in v.into_iter() {
let _ = self.add_item(image);
}
}
Err(e) => {
- error!(
- "There was an error in converting images: {e}"
- );
+ error!("There was an error in converting images: {e}")
}
- }
+ };
}
}
-pub async fn remove_from_db(
- db: PoolConnection,
- id: i32,
-) -> Result<()> {
- query!("DELETE FROM images WHERE id = $1", id)
- .execute(&mut db.detach())
- .await
- .into_diagnostic()
- .map(|_| ())
-}
-
-pub async fn add_image_to_db(
- image: Image,
- db: PoolConnection,
-) -> Result<()> {
- let path = image
- .path
- .to_str()
- .map(std::string::ToString::to_string)
- .unwrap_or_default();
- let mut db = db.detach();
- query!(
- r#"INSERT INTO images (title, file_path) VALUES ($1, $2)"#,
- image.title,
- path,
- )
- .execute(&mut db)
- .await
- .into_diagnostic()?;
- Ok(())
-}
-
pub async fn update_image_in_db(
image: Image,
db: PoolConnection,
@@ -229,29 +172,19 @@ pub async fn update_image_in_db(
let path = image
.path
.to_str()
- .map(std::string::ToString::to_string)
+ .map(|s| s.to_string())
.unwrap_or_default();
- let mut db = db.detach();
- debug!(?image, "should be been updated");
- let result = query!(
+ query!(
r#"UPDATE images SET title = $2, file_path = $3 WHERE id = $1"#,
image.id,
image.title,
path,
)
- .execute(&mut db)
- .await.into_diagnostic();
+ .execute(&mut db.detach())
+ .await
+ .into_diagnostic()?;
- match result {
- Ok(_) => {
- debug!("should have been updated");
- Ok(())
- }
- Err(e) => {
- error! {?e};
- Err(e)
- }
- }
+ Ok(())
}
pub async fn get_image_from_db(
diff --git a/src/core/kinds.rs b/src/core/kinds.rs
index 9aa3768..b366997 100644
--- a/src/core/kinds.rs
+++ b/src/core/kinds.rs
@@ -1,11 +1,8 @@
-use std::{error::Error, fmt::Display, path::PathBuf};
+use std::{error::Error, fmt::Display};
use serde::{Deserialize, Serialize};
-use crate::{
- Slide,
- core::{content::Content, service_items::ServiceItem},
-};
+use crate::Slide;
use super::{
images::Image, presentations::Presentation, songs::Song,
@@ -21,65 +18,14 @@ pub enum ServiceItemKind {
Content(Slide),
}
-impl TryFrom for ServiceItemKind {
- type Error = miette::Error;
-
- fn try_from(path: PathBuf) -> Result {
- let ext = path
- .extension()
- .map(|ext| ext.to_str())
- .flatten()
- .ok_or(miette::miette!(
- "There isn't an extension on this file"
- ))?;
- match ext {
- "png" | "jpg" | "jpeg" => {
- Ok(Self::Image(Image::from(path)))
- }
- "mp4" | "mkv" | "webm" => {
- Ok(Self::Video(Video::from(path)))
- }
- _ => Err(miette::miette!("Unknown item")),
- }
- }
-}
-
-impl ServiceItemKind {
- pub fn title(&self) -> String {
- match self {
- ServiceItemKind::Song(song) => song.title.to_string(),
- ServiceItemKind::Video(video) => video.title.to_string(),
- ServiceItemKind::Image(image) => image.title.to_string(),
- ServiceItemKind::Presentation(presentation) => {
- presentation.title.to_string()
- }
- ServiceItemKind::Content(slide) => todo!(),
- }
- }
-
- pub fn to_service_item(&self) -> ServiceItem {
- match self {
- ServiceItemKind::Song(song) => song.to_service_item(),
- ServiceItemKind::Video(video) => video.to_service_item(),
- ServiceItemKind::Image(image) => image.to_service_item(),
- ServiceItemKind::Presentation(presentation) => {
- presentation.to_service_item()
- }
- ServiceItemKind::Content(slide) => {
- todo!()
- }
- }
- }
-}
-
impl std::fmt::Display for ServiceItemKind {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
let s = match self {
- Self::Song(_) => "song".to_owned(),
- Self::Image(_) => "image".to_owned(),
- Self::Video(_) => "video".to_owned(),
- Self::Presentation(_) => "html".to_owned(),
- Self::Content(_) => "content".to_owned(),
+ Self::Song(s) => "song".to_owned(),
+ Self::Image(i) => "image".to_owned(),
+ Self::Video(v) => "video".to_owned(),
+ Self::Presentation(p) => "html".to_owned(),
+ Self::Content(s) => "content".to_owned(),
};
write!(f, "{s}")
}
@@ -104,7 +50,7 @@ impl std::fmt::Display for ServiceItemKind {
// }
impl From for String {
- fn from(val: ServiceItemKind) -> Self {
+ fn from(val: ServiceItemKind) -> String {
match val {
ServiceItemKind::Song(_) => "song".to_owned(),
ServiceItemKind::Video(_) => "video".to_owned(),
@@ -130,9 +76,7 @@ impl Display for ParseError {
f: &mut std::fmt::Formatter<'_>,
) -> std::fmt::Result {
let message = match self {
- Self::UnknownType => {
- "The type does not exist. It needs to be one of 'song', 'video', 'image', 'presentation', or 'content'"
- }
+ Self::UnknownType => "The type does not exist. It needs to be one of 'song', 'video', 'image', 'presentation', or 'content'",
};
write!(f, "Error: {message}")
}
diff --git a/src/core/lisp.rs b/src/core/lisp.rs
new file mode 100644
index 0000000..2c1a666
--- /dev/null
+++ b/src/core/lisp.rs
@@ -0,0 +1,157 @@
+use lexpr::Value;
+use strum_macros::EnumString;
+
+#[derive(Debug, Clone, Default, PartialEq, Eq, EnumString)]
+pub(crate) enum Symbol {
+ #[strum(ascii_case_insensitive)]
+ Slide,
+ #[strum(ascii_case_insensitive)]
+ Image,
+ #[strum(ascii_case_insensitive)]
+ Text,
+ #[strum(ascii_case_insensitive)]
+ Video,
+ #[strum(ascii_case_insensitive)]
+ Song,
+ #[strum(disabled)]
+ ImageFit(ImageFit),
+ #[strum(disabled)]
+ VerseOrder(VerseOrder),
+ #[strum(disabled)]
+ #[default]
+ None,
+}
+
+#[derive(Debug, Clone, PartialEq, Eq, EnumString)]
+pub(crate) enum Keyword {
+ ImageFit(ImageFit),
+}
+
+#[derive(Debug, Default, Clone, PartialEq, Eq, EnumString)]
+pub(crate) enum ImageFit {
+ #[strum(ascii_case_insensitive)]
+ #[default]
+ Cover,
+ #[strum(ascii_case_insensitive)]
+ Fill,
+ #[strum(ascii_case_insensitive)]
+ Crop,
+}
+
+#[derive(Clone, Debug, Default, PartialEq, Eq, EnumString)]
+pub(crate) enum VerseOrder {
+ #[strum(ascii_case_insensitive)]
+ #[default]
+ V1,
+ #[strum(ascii_case_insensitive)]
+ V2,
+ #[strum(ascii_case_insensitive)]
+ V3,
+ #[strum(ascii_case_insensitive)]
+ V4,
+ #[strum(ascii_case_insensitive)]
+ V5,
+ #[strum(ascii_case_insensitive)]
+ V6,
+ #[strum(ascii_case_insensitive)]
+ C1,
+ #[strum(ascii_case_insensitive)]
+ C2,
+ #[strum(ascii_case_insensitive)]
+ C3,
+ #[strum(ascii_case_insensitive)]
+ C4,
+ #[strum(ascii_case_insensitive)]
+ B1,
+ #[strum(ascii_case_insensitive)]
+ B2,
+ #[strum(ascii_case_insensitive)]
+ B3,
+ #[strum(ascii_case_insensitive)]
+ B4,
+ #[strum(ascii_case_insensitive)]
+ O1,
+ #[strum(ascii_case_insensitive)]
+ O2,
+ #[strum(ascii_case_insensitive)]
+ O3,
+ #[strum(ascii_case_insensitive)]
+ O4,
+ #[strum(ascii_case_insensitive)]
+ E1,
+ #[strum(ascii_case_insensitive)]
+ E2,
+ #[strum(ascii_case_insensitive)]
+ I1,
+ #[strum(ascii_case_insensitive)]
+ I2,
+}
+
+#[derive(Clone, Debug, PartialEq, Eq, EnumString)]
+pub(crate) enum SongKeyword {
+ #[strum(ascii_case_insensitive)]
+ Title,
+ #[strum(ascii_case_insensitive)]
+ Author,
+ #[strum(ascii_case_insensitive)]
+ Ccli,
+ #[strum(ascii_case_insensitive)]
+ Audio,
+ #[strum(ascii_case_insensitive)]
+ Font,
+ #[strum(ascii_case_insensitive)]
+ FontSize,
+ #[strum(ascii_case_insensitive)]
+ Background,
+ #[strum(ascii_case_insensitive)]
+ VerseOrder(VerseOrder),
+}
+
+#[derive(Clone, Debug, PartialEq, Eq, EnumString)]
+pub(crate) enum ImageKeyword {
+ #[strum(ascii_case_insensitive)]
+ Source,
+ #[strum(ascii_case_insensitive)]
+ Fit,
+}
+
+#[derive(Clone, Debug, Eq, PartialEq, EnumString)]
+pub(crate) enum VideoKeyword {
+ #[strum(ascii_case_insensitive)]
+ Source,
+ #[strum(ascii_case_insensitive)]
+ Fit,
+}
+
+pub(crate) fn get_lists(exp: &Value) -> Vec {
+ if exp.is_cons() {
+ exp.as_cons().unwrap().to_vec().0
+ } else {
+ vec![]
+ }
+}
+
+#[cfg(test)]
+mod test {
+
+ // #[test]
+ // fn test_list() {
+ // let lisp =
+ // read_to_string("./test_presentation.lisp").expect("oops");
+ // // println!("{lisp}");
+ // let mut parser =
+ // Parser::from_str_custom(&lisp, Options::elisp());
+ // for atom in parser.value_iter() {
+ // match atom {
+ // Ok(atom) => {
+ // // println!("{atom}");
+ // let lists = get_lists(&atom);
+ // assert_eq!(lists, vec![Value::Null])
+ // }
+ // Err(e) => {
+ // panic!("{e}");
+ // }
+ // }
+ // }
+ // }
+}
diff --git a/src/core/mod.rs b/src/core/mod.rs
index 39c1f0b..e23192e 100644
--- a/src/core/mod.rs
+++ b/src/core/mod.rs
@@ -1,11 +1,10 @@
pub mod content;
-pub mod file;
pub mod images;
pub mod kinds;
+pub mod lisp;
pub mod model;
pub mod presentations;
pub mod service_items;
-pub mod settings;
pub mod slide;
pub mod songs;
pub mod thumbnail;
diff --git a/src/core/model.rs b/src/core/model.rs
index 2b0bd7c..8452cc1 100644
--- a/src/core/model.rs
+++ b/src/core/model.rs
@@ -1,14 +1,7 @@
-use std::{
- borrow::Cow,
- mem::replace,
- path::{Path, PathBuf},
-};
+use std::mem::replace;
-use cosmic::iced::clipboard::mime::{AllowedMimeTypes, AsMimeTypes};
-use miette::{IntoDiagnostic, Result, miette};
-use serde::{Deserialize, Serialize};
+use miette::{miette, Result};
use sqlx::{Connection, SqliteConnection};
-use tracing::debug;
#[derive(Debug, Clone)]
pub struct Model {
@@ -16,9 +9,7 @@ pub struct Model {
pub kind: LibraryKind,
}
-#[derive(
- Debug, Clone, PartialEq, Eq, Copy, Hash, Serialize, Deserialize,
-)]
+#[derive(Debug, Clone, PartialEq, Copy)]
pub enum LibraryKind {
Song,
Video,
@@ -26,57 +17,6 @@ pub enum LibraryKind {
Presentation,
}
-#[derive(
- Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize,
-)]
-pub struct KindWrapper(pub (LibraryKind, i32));
-
-impl From for LibraryKind {
- fn from(value: PathBuf) -> Self {
- todo!()
- }
-}
-
-impl TryFrom<(Vec, String)> for KindWrapper {
- type Error = miette::Error;
-
- fn try_from(
- value: (Vec, String),
- ) -> std::result::Result {
- let (data, mime) = value;
- match mime.as_str() {
- "application/service-item" => {
- ron::de::from_bytes(&data).into_diagnostic()
- }
- _ => Err(miette!("Wrong mime type: {mime}")),
- }
- }
-}
-
-impl AllowedMimeTypes for KindWrapper {
- fn allowed() -> Cow<'static, [String]> {
- Cow::from(vec!["application/service-item".to_string()])
- }
-}
-
-impl AsMimeTypes for KindWrapper {
- fn available(&self) -> Cow<'static, [String]> {
- debug!(?self);
- Cow::from(vec!["application/service-item".to_string()])
- }
-
- fn as_bytes(
- &self,
- mime_type: &str,
- ) -> Option> {
- debug!(?self);
- debug!(mime_type);
- let ron = ron::ser::to_string(self).ok()?;
- debug!(ron);
- Some(Cow::from(ron.into_bytes()))
- }
-}
-
impl Model {
pub fn add_item(&mut self, item: T) -> Result<()> {
self.items.push(item);
@@ -105,7 +45,6 @@ impl Model {
Ok(())
}
- #[must_use]
pub fn get_item(&self, index: i32) -> Option<&T> {
self.items.get(index as usize)
}
diff --git a/src/core/presentations.rs b/src/core/presentations.rs
index 1c6b4d2..106f8c4 100644
--- a/src/core/presentations.rs
+++ b/src/core/presentations.rs
@@ -1,14 +1,12 @@
-use cosmic::widget::image::Handle;
use crisp::types::{Keyword, Symbol, Value};
use miette::{IntoDiagnostic, Result};
-use mupdf::{Colorspace, Document, Matrix};
use serde::{Deserialize, Serialize};
use sqlx::{
- Row, Sqlite, SqliteConnection, SqlitePool, pool::PoolConnection,
- prelude::FromRow, query, sqlite::SqliteRow,
+ pool::PoolConnection, prelude::FromRow, query, sqlite::SqliteRow,
+ Row, Sqlite, SqliteConnection, SqlitePool,
};
-use std::path::{Path, PathBuf};
-use tracing::{debug, error};
+use std::path::PathBuf;
+use tracing::error;
use crate::{Background, Slide, SlideBuilder, TextAlignment};
@@ -24,15 +22,14 @@ use super::{
)]
pub enum PresKind {
Html,
- Pdf {
- starting_index: i32,
- ending_index: i32,
- },
#[default]
+ Pdf,
Generic,
}
-#[derive(Debug, Clone, Default, Serialize, Deserialize)]
+#[derive(
+ Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize,
+)]
pub struct Presentation {
pub id: i32,
pub title: String,
@@ -40,72 +37,8 @@ pub struct Presentation {
pub kind: PresKind,
}
-impl Eq for Presentation {}
-
-impl PartialEq for Presentation {
- fn eq(&self, other: &Self) -> bool {
- self.id == other.id
- && self.title == other.title
- && self.path == other.path
- && self.kind == other.kind
- }
-}
-
-impl From for Presentation {
- fn from(value: PathBuf) -> Self {
- let title = value
- .file_name()
- .unwrap_or_default()
- .to_str()
- .unwrap_or_default()
- .to_string();
- let kind = match value
- .extension()
- .unwrap_or_default()
- .to_str()
- .unwrap_or_default()
- {
- "pdf" => {
- if let Ok(document) = Document::open(&value.as_path())
- {
- if let Ok(count) = document.page_count() {
- PresKind::Pdf {
- starting_index: 0,
- ending_index: count - 1,
- }
- } else {
- PresKind::Pdf {
- starting_index: 0,
- ending_index: 0,
- }
- }
- } else {
- PresKind::Pdf {
- starting_index: 0,
- ending_index: 0,
- }
- }
- }
- "html" => PresKind::Html,
- _ => PresKind::Generic,
- };
- Self {
- id: 0,
- title,
- path: value.canonicalize().unwrap_or(value),
- kind,
- }
- }
-}
-
-impl From<&Path> for Presentation {
- fn from(value: &Path) -> Self {
- Self::from(value.to_owned())
- }
-}
-
impl From<&Presentation> for Value {
- fn from(_value: &Presentation) -> Self {
+ fn from(value: &Presentation) -> Self {
Self::List(vec![Self::Symbol(Symbol("presentation".into()))])
}
}
@@ -131,9 +64,8 @@ impl Content for Presentation {
if self.path.exists() {
self.path
.file_name()
- .map_or("Missing presentation".into(), |f| {
- f.to_string_lossy().to_string()
- })
+ .map(|f| f.to_string_lossy().to_string())
+ .unwrap_or("Missing presentation".into())
} else {
"Missing presentation".into()
}
@@ -185,76 +117,22 @@ impl ServiceTrait for Presentation {
}
fn to_slides(&self) -> Result> {
- debug!(?self);
- let PresKind::Pdf {
- starting_index,
- ending_index,
- } = self.kind
- else {
- return Err(miette::miette!(
- "This is not a pdf presentation"
- ));
- };
- let background = Background::try_from(self.path.clone())
- .into_diagnostic()?;
- debug!(?background);
- let document = Document::open(background.path.as_path())
- .into_diagnostic()?;
- debug!(?document);
- let pages = document.pages().into_diagnostic()?;
- debug!(?pages);
- let pages: Vec = pages
- .enumerate()
- .filter_map(|(index, page)| {
- if (index as i32) < starting_index {
- return None;
- } else if (index as i32) > ending_index {
- return None;
- };
+ let slide = SlideBuilder::new()
+ .background(
+ Background::try_from(self.path.clone())
+ .into_diagnostic()?,
+ )
+ .text("")
+ .audio("")
+ .font("")
+ .font_size(50)
+ .text_alignment(TextAlignment::MiddleCenter)
+ .video_loop(false)
+ .video_start_time(0.0)
+ .video_end_time(0.0)
+ .build()?;
- let Some(page) = page.ok() else {
- return None;
- };
- let matrix = Matrix::IDENTITY;
- let colorspace = Colorspace::device_rgb();
- let Ok(pixmap) = page
- .to_pixmap(&matrix, &colorspace, true, true)
- .into_diagnostic()
- else {
- error!("Can't turn this page into pixmap");
- return None;
- };
- debug!(?pixmap);
- Some(Handle::from_rgba(
- pixmap.width(),
- pixmap.height(),
- pixmap.samples().to_vec(),
- ))
- })
- .collect();
-
- let mut slides: Vec = vec![];
- for (index, page) in pages.into_iter().enumerate() {
- let slide = SlideBuilder::new()
- .background(
- Background::try_from(self.path.clone())
- .into_diagnostic()?,
- )
- .text("")
- .audio("")
- .font("")
- .font_size(50)
- .text_alignment(TextAlignment::MiddleCenter)
- .video_loop(false)
- .video_start_time(0.0)
- .video_end_time(0.0)
- .pdf_index(index as u32)
- .pdf_page(page)
- .build()?;
- slides.push(slide);
- }
- debug!(?slides);
- Ok(slides)
+ Ok(vec![slide])
}
fn box_clone(&self) -> Box {
@@ -263,16 +141,14 @@ impl ServiceTrait for Presentation {
}
impl Presentation {
- #[must_use]
pub fn new() -> Self {
Self {
- title: String::new(),
+ title: "".to_string(),
..Default::default()
}
}
- #[must_use]
- pub const fn get_kind(&self) -> &PresKind {
+ pub fn get_kind(&self) -> &PresKind {
&self.kind
}
}
@@ -289,10 +165,7 @@ impl FromRow<'_, SqliteRow> for Presentation {
kind: if row.try_get(3)? {
PresKind::Html
} else {
- PresKind::Pdf {
- starting_index: row.try_get(4)?,
- ending_index: row.try_get(5)?,
- }
+ PresKind::Pdf
},
})
}
@@ -312,57 +185,21 @@ impl Model {
pub async fn load_from_db(&mut self, db: &mut SqliteConnection) {
let result = query!(
- r#"SELECT id as "id: i32", title, file_path as "path", html, starting_index, ending_index from presentations"#
+ r#"SELECT id as "id: i32", title, file_path as "path", html from presentations"#
)
.fetch_all(db)
.await;
-
match result {
Ok(v) => {
- for presentation in v {
+ for presentation in v.into_iter() {
let _ = self.add_item(Presentation {
id: presentation.id,
title: presentation.title,
- path: presentation.path.clone().into(),
+ path: presentation.path.into(),
kind: if presentation.html {
PresKind::Html
} else {
- if let (
- Some(starting_index),
- Some(ending_index),
- ) = (
- presentation.starting_index,
- presentation.ending_index,
- ) {
- PresKind::Pdf {
- starting_index: starting_index
- as i32,
- ending_index: ending_index as i32,
- }
- } else {
- let path =
- PathBuf::from(presentation.path);
- if let Ok(document) =
- Document::open(path.as_path())
- {
- if let Ok(count) =
- document.page_count()
- {
- let ending_index = count - 1;
- PresKind::Pdf {
- starting_index: 0,
- ending_index,
- }
- } else {
- PresKind::Pdf {
- starting_index: 0,
- ending_index: 0,
- }
- }
- } else {
- PresKind::Generic
- }
- }
+ PresKind::Pdf
},
});
}
@@ -374,40 +211,6 @@ impl Model {
}
}
-pub async fn remove_from_db(
- db: PoolConnection,
- id: i32,
-) -> Result<()> {
- query!("DELETE FROM presentations WHERE id = $1", id)
- .execute(&mut db.detach())
- .await
- .into_diagnostic()
- .map(|_| ())
-}
-
-pub async fn add_presentation_to_db(
- presentation: Presentation,
- db: PoolConnection,
-) -> Result<()> {
- let path = presentation
- .path
- .to_str()
- .map(std::string::ToString::to_string)
- .unwrap_or_default();
- let html = presentation.kind == PresKind::Html;
- let mut db = db.detach();
- query!(
- r#"INSERT INTO presentations (title, file_path, html) VALUES ($1, $2, $3)"#,
- presentation.title,
- path,
- html,
- )
- .execute(&mut db)
- .await
- .into_diagnostic()?;
- Ok(())
-}
-
pub async fn update_presentation_in_db(
presentation: Presentation,
db: PoolConnection,
@@ -415,84 +218,21 @@ pub async fn update_presentation_in_db(
let path = presentation
.path
.to_str()
- .map(std::string::ToString::to_string)
+ .map(|s| s.to_string())
.unwrap_or_default();
let html = presentation.kind == PresKind::Html;
- let mut db = db.detach();
- let mut starting_index = 0;
- let mut ending_index = 0;
- if let PresKind::Pdf {
- starting_index: s_index,
- ending_index: e_index,
- } = presentation.get_kind()
- {
- starting_index = *s_index;
- ending_index = *e_index;
- };
- let id = presentation.id;
- if let Err(e) =
- query!("SELECT id FROM presentations where id = $1", id)
- .fetch_one(&mut db)
- .await
- {
- if let Ok(ids) = query!("SELECT id FROM presentations")
- .fetch_all(&mut db)
- .await
- {
- let Some(mut max) = ids.iter().map(|r| r.id).max() else {
- return Err(miette::miette!("cannot find max id"));
- };
- debug!(?e, "Presentation not found");
- max += 1;
- let result = query!(
- r#"INSERT into presentations VALUES($1, $2, $3, $4, $5, $6)"#,
- max,
- presentation.title,
- path,
- html,
- starting_index,
- ending_index,
- )
- .execute(&mut db)
- .await
- .into_diagnostic();
-
- return match result {
- Ok(_) => {
- debug!("should have been updated");
- Ok(())
- }
- Err(e) => {
- error! {?e};
- Err(e)
- }
- };
- } else {
- return Err(miette::miette!("cannot find ids"));
- }
- };
-
- debug!(?presentation, "should be been updated");
- let result = query!(
+ query!(
r#"UPDATE presentations SET title = $2, file_path = $3, html = $4 WHERE id = $1"#,
presentation.id,
presentation.title,
path,
html
)
- .execute(&mut db)
- .await.into_diagnostic();
+ .execute(&mut db.detach())
+ .await
+ .into_diagnostic()?;
- match result {
- Ok(_) => {
- debug!("should have been updated");
- Ok(())
- }
- Err(e) => {
- error! {?e};
- Err(e)
- }
- }
+ Ok(())
}
pub async fn get_presentation_from_db(
@@ -522,13 +262,7 @@ mod test {
#[test]
pub fn test_pres() {
let pres = Presentation::new();
- assert_eq!(
- pres.get_kind(),
- &PresKind::Pdf {
- starting_index: 0,
- ending_index: 0,
- }
- )
+ assert_eq!(pres.get_kind(), &PresKind::Pdf)
}
#[tokio::test]
diff --git a/src/core/service_items.rs b/src/core/service_items.rs
index 250d16d..15673d0 100644
--- a/src/core/service_items.rs
+++ b/src/core/service_items.rs
@@ -1,30 +1,29 @@
use std::borrow::Cow;
use std::cmp::Ordering;
use std::ops::Deref;
-use std::path::PathBuf;
+use std::sync::Arc;
-use cosmic::iced::clipboard::mime::{AllowedMimeTypes, AsMimeTypes};
use crisp::types::{Keyword, Symbol, Value};
-use miette::{IntoDiagnostic, Result, miette};
-use serde::{Deserialize, Serialize};
+// use cosmic::iced::clipboard::mime::{AllowedMimeTypes, AsMimeTypes};
+use miette::Result;
use tracing::{debug, error};
use crate::Slide;
use super::images::Image;
use super::presentations::Presentation;
-use super::songs::{Song, lisp_to_song};
+use super::songs::{lisp_to_song, Song};
use super::videos::Video;
use super::kinds::ServiceItemKind;
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
+#[derive(Debug, PartialEq, Clone)]
pub struct ServiceItem {
pub id: i32,
pub title: String,
pub database_id: i32,
pub kind: ServiceItemKind,
- pub slides: Vec,
+ pub slides: Arc<[Slide]>,
// pub item: Box,
}
@@ -48,73 +47,49 @@ impl TryFrom<(Vec, String)> for ServiceItem {
fn try_from(
value: (Vec, String),
) -> std::result::Result {
- let (data, mime) = value;
- debug!(?mime);
- ron::de::from_bytes(&data).into_diagnostic()
+ debug!(?value);
+ let val = Value::from(
+ String::from_utf8(value.0)
+ .expect("Value couldn't be made"),
+ );
+ Ok(Self::from(&val))
}
}
-impl AllowedMimeTypes for ServiceItem {
- fn allowed() -> Cow<'static, [String]> {
- Cow::from(vec![
- "application/service-item".to_string(),
- "text/uri-list".to_string(),
- "x-special/gnome-copied-files".to_string(),
- ])
- }
-}
+// impl AllowedMimeTypes for ServiceItem {
+// fn allowed() -> Cow<'static, [String]> {
+// Cow::from(vec!["application/service-item".to_string()])
+// }
+// }
-impl AsMimeTypes for ServiceItem {
- fn available(&self) -> Cow<'static, [String]> {
- debug!(?self);
- Cow::from(vec!["application/service-item".to_string()])
- }
+// impl AsMimeTypes for ServiceItem {
+// fn available(&self) -> Cow<'static, [String]> {
+// debug!(?self);
+// Cow::from(vec!["application/service-item".to_string()])
+// }
- fn as_bytes(
- &self,
- mime_type: &str,
- ) -> Option> {
- debug!(?self);
- debug!(mime_type);
- let ron = ron::ser::to_string(self).ok()?;
- debug!(ron);
- Some(Cow::from(ron.into_bytes()))
- }
-}
-
-impl TryFrom for ServiceItem {
- type Error = miette::Error;
-
- fn try_from(path: PathBuf) -> Result {
- let ext = path
- .extension()
- .map(|ext| ext.to_str())
- .flatten()
- .ok_or(miette::miette!(
- "There isn't an extension on this file"
- ))?;
- match ext {
- "png" | "jpg" | "jpeg" => {
- Ok(Self::from(&Image::from(path)))
- }
- "mp4" | "mkv" | "webm" => {
- Ok(Self::from(&Video::from(path)))
- }
- _ => Err(miette!("Unkown service item")),
- }
- }
-}
+// fn as_bytes(
+// &self,
+// mime_type: &str,
+// ) -> Option> {
+// debug!(?self);
+// debug!(mime_type);
+// let val = Value::from(self);
+// let val = String::from(val);
+// Some(Cow::from(val.into_bytes()))
+// }
+// }
impl From<&ServiceItem> for Value {
fn from(value: &ServiceItem) -> Self {
match &value.kind {
- ServiceItemKind::Song(song) => Self::from(song),
- ServiceItemKind::Video(video) => Self::from(video),
- ServiceItemKind::Image(image) => Self::from(image),
+ ServiceItemKind::Song(song) => Value::from(song),
+ ServiceItemKind::Video(video) => Value::from(video),
+ ServiceItemKind::Image(image) => Value::from(image),
ServiceItemKind::Presentation(presentation) => {
- Self::from(presentation)
+ Value::from(presentation)
}
- ServiceItemKind::Content(slide) => Self::from(slide),
+ ServiceItemKind::Content(slide) => Value::from(slide),
}
}
}
@@ -146,7 +121,7 @@ impl Default for ServiceItem {
title: String::default(),
database_id: 0,
kind: ServiceItemKind::Content(Slide::default()),
- slides: vec![],
+ slides: Arc::new([]),
// item: Box::new(Image::default()),
}
}
@@ -196,13 +171,13 @@ impl From<&Value> for ServiceItem {
kind: ServiceItemKind::Content(
slide.clone(),
),
- slides: vec![slide],
+ slides: Arc::new([slide]),
}
} else if let Some(background) =
list.get(background_pos)
{
- if let Value::List(item) = background {
- match &item[0] {
+ match background {
+ Value::List(item) => match &item[0] {
Value::Symbol(Symbol(s))
if s == "image" =>
{
@@ -225,29 +200,30 @@ impl From<&Value> for ServiceItem {
))
}
_ => todo!(),
+ },
+ _ => {
+ error!(
+ "There is no background here: {:?}",
+ background
+ );
+ ServiceItem::default()
}
- } else {
- error!(
- "There is no background here: {:?}",
- background
- );
- Self::default()
}
} else {
error!(
"There is no background here: {:?}",
background_pos
);
- Self::default()
+ ServiceItem::default()
}
}
Value::Symbol(Symbol(s)) if s == "song" => {
let song = lisp_to_song(list.clone());
Self::from(&song)
}
- _ => Self::default(),
+ _ => ServiceItem::default(),
},
- _ => Self::default(),
+ _ => ServiceItem::default(),
}
}
}
@@ -286,7 +262,7 @@ impl From<&Song> for ServiceItem {
kind: ServiceItemKind::Song(song.clone()),
database_id: song.id,
title: song.title.clone(),
- slides,
+ slides: slides.into(),
..Default::default()
}
} else {
@@ -307,7 +283,7 @@ impl From<&Video> for ServiceItem {
kind: ServiceItemKind::Video(video.clone()),
database_id: video.id,
title: video.title.clone(),
- slides,
+ slides: slides.into(),
..Default::default()
}
} else {
@@ -328,7 +304,7 @@ impl From<&Image> for ServiceItem {
kind: ServiceItemKind::Image(image.clone()),
database_id: image.id,
title: image.title.clone(),
- slides,
+ slides: slides.into(),
..Default::default()
}
} else {
@@ -344,26 +320,24 @@ impl From<&Image> for ServiceItem {
impl From<&Presentation> for ServiceItem {
fn from(presentation: &Presentation) -> Self {
- match presentation.to_slides() {
- Ok(slides) => Self {
+ if let Ok(slides) = presentation.to_slides() {
+ Self {
+ kind: ServiceItemKind::Presentation(
+ presentation.clone(),
+ ),
+ database_id: presentation.id,
+ title: presentation.title.clone(),
+ slides: slides.into(),
+ ..Default::default()
+ }
+ } else {
+ Self {
kind: ServiceItemKind::Presentation(
presentation.clone(),
),
database_id: presentation.id,
title: presentation.title.clone(),
- slides,
..Default::default()
- },
- Err(e) => {
- error!(?e);
- Self {
- kind: ServiceItemKind::Presentation(
- presentation.clone(),
- ),
- database_id: presentation.id,
- title: presentation.title.clone(),
- ..Default::default()
- }
}
}
}
diff --git a/src/core/settings.rs b/src/core/settings.rs
deleted file mode 100644
index 0827946..0000000
--- a/src/core/settings.rs
+++ /dev/null
@@ -1,77 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-only
-
-use cosmic::{
- cosmic_config::{
- self, CosmicConfigEntry,
- cosmic_config_derive::CosmicConfigEntry,
- },
- theme,
-};
-use serde::{Deserialize, Serialize};
-use std::{collections::VecDeque, path::PathBuf};
-
-pub const SETTINGS_VERSION: u64 = 1;
-
-#[derive(
- Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize,
-)]
-pub enum AppTheme {
- Dark,
- Light,
- System,
-}
-
-impl AppTheme {
- pub fn theme(&self) -> theme::Theme {
- match self {
- Self::Dark => theme::Theme::dark(),
- Self::Light => theme::Theme::light(),
- Self::System => theme::system_preference(),
- }
- }
-}
-
-#[derive(
- Clone,
- CosmicConfigEntry,
- Debug,
- Deserialize,
- Eq,
- PartialEq,
- Serialize,
-)]
-#[serde(default)]
-pub struct Settings {
- pub app_theme: AppTheme,
- pub obs_url: Option,
-}
-
-impl Default for Settings {
- fn default() -> Self {
- Self {
- app_theme: AppTheme::System,
- obs_url: None,
- }
- }
-}
-
-#[derive(
- Clone,
- CosmicConfigEntry,
- Debug,
- Deserialize,
- Eq,
- PartialEq,
- Serialize,
-)]
-pub struct PersistentState {
- pub recent_files: VecDeque,
-}
-
-impl Default for PersistentState {
- fn default() -> Self {
- Self {
- recent_files: VecDeque::new(),
- }
- }
-}
diff --git a/src/core/slide.rs b/src/core/slide.rs
index 70e60c1..6400639 100644
--- a/src/core/slide.rs
+++ b/src/core/slide.rs
@@ -1,8 +1,7 @@
-use cosmic::widget::image::Handle;
-// use cosmic::dialog::ashpd::url::Url;
+// use iced::dialog::ashpd::url::Url;
use crisp::types::{Keyword, Symbol, Value};
use iced_video_player::Video;
-use miette::{Result, miette};
+use miette::{miette, Result};
use serde::{Deserialize, Serialize};
use std::{
fmt::Display,
@@ -10,49 +9,10 @@ use std::{
};
use tracing::error;
-use crate::ui::text_svg::TextSvg;
+use crate::ui::text_svg::{self, TextSvg};
use super::songs::Song;
-#[derive(
- Clone, Debug, Default, PartialEq, Serialize, Deserialize,
-)]
-pub struct Slide {
- id: i32,
- background: Background,
- text: String,
- font: String,
- font_size: i32,
- text_alignment: TextAlignment,
- audio: Option,
- video_loop: bool,
- video_start_time: f32,
- video_end_time: f32,
- pdf_index: u32,
- #[serde(skip)]
- pdf_page: Option,
- #[serde(skip)]
- pub text_svg: Option,
-}
-
-#[derive(
- Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize,
-)]
-pub enum BackgroundKind {
- #[default]
- Image,
- Video,
- Pdf,
- Html,
-}
-
-#[derive(Debug, Clone, Default)]
-struct Image {
- pub source: String,
- pub fit: String,
- pub children: Vec,
-}
-
#[derive(
Clone,
Copy,
@@ -107,9 +67,9 @@ impl TryFrom<&Background> for Video {
fn try_from(
value: &Background,
) -> std::result::Result {
- Self::new(
+ Video::new(
&url::Url::from_file_path(value.path.clone())
- .map_err(|()| ParseError::BackgroundNotVideo)?,
+ .map_err(|_| ParseError::BackgroundNotVideo)?,
)
.map_err(|_| ParseError::BackgroundNotVideo)
}
@@ -121,9 +81,9 @@ impl TryFrom for Video {
fn try_from(
value: Background,
) -> std::result::Result {
- Self::new(
+ Video::new(
&url::Url::from_file_path(value.path)
- .map_err(|()| ParseError::BackgroundNotVideo)?,
+ .map_err(|_| ParseError::BackgroundNotVideo)?,
)
.map_err(|_| ParseError::BackgroundNotVideo)
}
@@ -132,7 +92,7 @@ impl TryFrom for Video {
impl TryFrom for Background {
type Error = ParseError;
fn try_from(value: String) -> Result {
- Self::try_from(value.as_str())
+ Background::try_from(value.as_str())
}
}
@@ -147,7 +107,7 @@ impl TryFrom for Background {
.to_str()
.unwrap()
.to_string();
- let path = path.replace('~', &home);
+ let path = path.replace("~", &home);
PathBuf::from(path)
} else {
path
@@ -161,27 +121,21 @@ impl TryFrom for Background {
.to_str()
.unwrap_or_default();
match extension {
- "jpeg" | "jpg" | "png" | "webp" => Ok(Self {
- path: value,
- kind: BackgroundKind::Image,
- }),
+ "jpeg" | "jpg" | "png" | "webp" | "html" => {
+ Ok(Self {
+ path: value,
+ kind: BackgroundKind::Image,
+ })
+ }
"mp4" | "mkv" | "webm" => Ok(Self {
path: value,
kind: BackgroundKind::Video,
}),
- "pdf" => Ok(Self {
- path: value,
- kind: BackgroundKind::Pdf,
- }),
- "html" => Ok(Self {
- path: value,
- kind: BackgroundKind::Html,
- }),
_ => Err(ParseError::NonBackgroundFile),
}
}
Err(e) => {
- // error!("Couldn't canonicalize: {e} {:?}", path);
+ error!("Couldn't canonicalize: {e} {:?}", path);
Err(ParseError::CannotCanonicalize)
}
}
@@ -192,10 +146,10 @@ impl TryFrom<&str> for Background {
type Error = ParseError;
fn try_from(value: &str) -> Result {
let value = value.trim_start_matches("file://");
- if value.starts_with('~') {
+ if value.starts_with("~") {
if let Some(home) = dirs::home_dir() {
if let Some(home) = home.to_str() {
- let value = value.replace('~', home);
+ let value = value.replace("~", home);
Self::try_from(PathBuf::from(value))
} else {
Self::try_from(PathBuf::from(value))
@@ -249,16 +203,43 @@ impl Display for ParseError {
}
}
+#[derive(
+ Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize,
+)]
+pub enum BackgroundKind {
+ #[default]
+ Image,
+ Video,
+}
+
impl From for BackgroundKind {
fn from(value: String) -> Self {
if value == "image" {
- Self::Image
+ BackgroundKind::Image
} else {
- Self::Video
+ BackgroundKind::Video
}
}
}
+#[derive(
+ Clone, Debug, Default, PartialEq, Serialize, Deserialize,
+)]
+pub struct Slide {
+ id: i32,
+ background: Background,
+ text: String,
+ font: String,
+ font_size: i32,
+ text_alignment: TextAlignment,
+ audio: Option,
+ video_loop: bool,
+ video_start_time: f32,
+ video_end_time: f32,
+ #[serde(skip)]
+ pub text_svg: TextSvg,
+}
+
impl From<&Slide> for Value {
fn from(value: &Slide) -> Self {
Self::List(vec![Self::Symbol(Symbol("slide".into()))])
@@ -271,17 +252,12 @@ impl Slide {
self
}
- pub fn with_text_svg(mut self, text_svg: TextSvg) -> Self {
- self.text_svg = Some(text_svg);
- self
- }
-
pub fn set_font(mut self, font: impl AsRef) -> Self {
self.font = font.as_ref().into();
self
}
- pub const fn set_font_size(mut self, font_size: i32) -> Self {
+ pub fn set_font_size(mut self, font_size: i32) -> Self {
self.font_size = font_size;
self
}
@@ -291,12 +267,7 @@ impl Slide {
self
}
- pub const fn set_pdf_index(mut self, pdf_index: u32) -> Self {
- self.pdf_index = pdf_index;
- self
- }
-
- pub const fn background(&self) -> &Background {
+ pub fn background(&self) -> &Background {
&self.background
}
@@ -304,11 +275,7 @@ impl Slide {
self.text.clone()
}
- pub const fn text_alignment(&self) -> TextAlignment {
- self.text_alignment
- }
-
- pub const fn font_size(&self) -> i32 {
+ pub fn font_size(&self) -> i32 {
self.font_size
}
@@ -316,7 +283,7 @@ impl Slide {
self.font.clone()
}
- pub const fn video_loop(&self) -> bool {
+ pub fn video_loop(&self) -> bool {
self.video_loop
}
@@ -324,17 +291,9 @@ impl Slide {
self.audio.clone()
}
- pub fn pdf_page(&self) -> Option {
- self.pdf_page.clone()
- }
-
- pub const fn pdf_index(&self) -> u32 {
- self.pdf_index
- }
-
pub fn song_slides(song: &Song) -> Result> {
let lyrics = song.get_lyrics()?;
- let slides: Vec = lyrics
+ let slides: Vec = lyrics
.iter()
.map(|l| {
let song = song.clone();
@@ -358,7 +317,7 @@ impl Slide {
Ok(slides)
}
- pub(crate) const fn set_index(&mut self, index: i32) {
+ pub(crate) fn set_index(&mut self, index: i32) {
self.id = index;
}
@@ -381,7 +340,7 @@ impl From<&Value> for Slide {
fn from(value: &Value) -> Self {
match value {
Value::List(list) => lisp_to_slide(list),
- _ => Self::default(),
+ _ => Slide::default(),
}
}
}
@@ -404,7 +363,7 @@ fn lisp_to_slide(lisp: &Vec) -> Slide {
slide = slide.background(lisp_to_background(background));
} else {
slide = slide.background(Background::default());
- }
+ };
let text_position = lisp.iter().position(|v| match v {
Value::List(vec) => {
@@ -547,9 +506,6 @@ pub struct SlideBuilder {
video_loop: Option,
video_start_time: Option,
video_end_time: Option,
- pdf_index: Option,
- #[serde(skip)]
- pdf_page: Option,
#[serde(skip)]
text_svg: Option,
}
@@ -633,19 +589,6 @@ impl SlideBuilder {
self
}
- pub(crate) fn pdf_page(mut self, pdf_page: Handle) -> Self {
- let _ = self.pdf_page.insert(pdf_page);
- self
- }
-
- pub(crate) fn pdf_index(
- mut self,
- pdf_index: impl Into,
- ) -> Self {
- let _ = self.pdf_index.insert(pdf_index.into());
- self
- }
-
pub(crate) fn build(self) -> Result {
let Some(background) = self.background else {
return Err(miette!("No background"));
@@ -671,27 +614,60 @@ impl SlideBuilder {
let Some(video_end_time) = self.video_end_time else {
return Err(miette!("No video_end_time"));
};
- Ok(Slide {
- background,
- text,
- font,
- font_size,
- text_alignment,
- audio: self.audio,
- video_loop,
- video_start_time,
- video_end_time,
- text_svg: self.text_svg,
- pdf_index: self.pdf_index.unwrap_or_default(),
- pdf_page: self.pdf_page,
- ..Default::default()
- })
+ if let Some(text_svg) = self.text_svg {
+ Ok(Slide {
+ background,
+ text,
+ font,
+ font_size,
+ text_alignment,
+ audio: self.audio,
+ video_loop,
+ video_start_time,
+ video_end_time,
+ text_svg,
+ ..Default::default()
+ })
+ } else {
+ let text_svg = TextSvg::new(text.clone())
+ .alignment(text_alignment)
+ .fill("#fff")
+ .shadow(text_svg::shadow(2, 2, 5, "#000000"))
+ .stroke(text_svg::stroke(3, "#000"))
+ .font(
+ text_svg::Font::from(font.clone())
+ .size(font_size.try_into().unwrap()),
+ )
+ .build();
+ Ok(Slide {
+ background,
+ text,
+ font,
+ font_size,
+ text_alignment,
+ audio: self.audio,
+ video_loop,
+ video_start_time,
+ video_end_time,
+ text_svg,
+ ..Default::default()
+ })
+ }
}
}
+#[derive(Debug, Clone, Default)]
+struct Image {
+ pub source: String,
+ pub fit: String,
+ pub children: Vec,
+}
+
impl Image {
fn new() -> Self {
- Default::default()
+ Self {
+ ..Default::default()
+ }
}
}
diff --git a/src/core/songs.rs b/src/core/songs.rs
index 891a889..270bc00 100644
--- a/src/core/songs.rs
+++ b/src/core/songs.rs
@@ -1,15 +1,15 @@
use std::{collections::HashMap, option::Option, path::PathBuf};
use crisp::types::{Keyword, Symbol, Value};
-use miette::{IntoDiagnostic, Result, miette};
+use miette::{miette, IntoDiagnostic, Result};
use serde::{Deserialize, Serialize};
use sqlx::{
- Acquire, FromRow, Row, Sqlite, SqliteConnection, SqlitePool,
- pool::PoolConnection, query, sqlite::SqliteRow,
+ pool::PoolConnection, query, sqlite::SqliteRow, FromRow, Row,
+ Sqlite, SqliteConnection, SqlitePool,
};
use tracing::error;
-use crate::{Slide, SlideBuilder, core::slide};
+use crate::{core::slide, Slide, SlideBuilder};
use super::{
content::Content,
@@ -34,7 +34,6 @@ pub struct Song {
pub text_alignment: Option,
pub font: Option,
pub font_size: Option,
- pub stroke_size: Option,
}
impl From<&Song> for Value {
@@ -128,9 +127,7 @@ impl FromRow<'_, SqliteRow> for Song {
})),
verse_order: Some({
let str: &str = row.try_get(0)?;
- str.split(' ')
- .map(std::string::ToString::to_string)
- .collect()
+ str.split(' ').map(|s| s.to_string()).collect()
}),
background: {
let string: String = row.try_get(7)?;
@@ -161,7 +158,6 @@ impl FromRow<'_, SqliteRow> for Song {
}),
font: row.try_get(6)?,
font_size: row.try_get(1)?,
- stroke_size: None,
})
}
}
@@ -253,7 +249,9 @@ pub fn lisp_to_song(list: Vec) -> Song {
.position(|v| v == &Value::Keyword(Keyword::from("title")))
{
let pos = key_pos + 1;
- list.get(pos).map_or(String::from("song"), String::from)
+ list.get(pos)
+ .map(String::from)
+ .unwrap_or(String::from("song"))
} else {
String::from("song")
};
@@ -320,30 +318,30 @@ pub fn lisp_to_song(list: Vec) -> Song {
let lyric = String::from(&lyric[1]);
let verse_title = match lyric_verse.as_str() {
- "i1" => r"\n\nIntro 1\n",
- "i2" => r"\n\nIntro 1\n",
- "v1" => r"\n\nVerse 1\n",
- "v2" => r"\n\nVerse 2\n",
- "v3" => r"\n\nVerse 3\n",
- "v4" => r"\n\nVerse 4\n",
- "v5" => r"\n\nVerse 5\n",
- "c1" => r"\n\nChorus 1\n",
- "c2" => r"\n\nChorus 2\n",
- "c3" => r"\n\nChorus 3\n",
- "c4" => r"\n\nChorus 4\n",
- "b1" => r"\n\nBridge 1\n",
- "b2" => r"\n\nBridge 2\n",
- "e1" => r"\n\nEnding 1\n",
- "e2" => r"\n\nEnding 2\n",
- "o1" => r"\n\nOther 1\n",
- "o2" => r"\n\nOther 2\n",
+ "i1" => r#"\n\nIntro 1\n"#,
+ "i2" => r#"\n\nIntro 1\n"#,
+ "v1" => r#"\n\nVerse 1\n"#,
+ "v2" => r#"\n\nVerse 2\n"#,
+ "v3" => r#"\n\nVerse 3\n"#,
+ "v4" => r#"\n\nVerse 4\n"#,
+ "v5" => r#"\n\nVerse 5\n"#,
+ "c1" => r#"\n\nChorus 1\n"#,
+ "c2" => r#"\n\nChorus 2\n"#,
+ "c3" => r#"\n\nChorus 3\n"#,
+ "c4" => r#"\n\nChorus 4\n"#,
+ "b1" => r#"\n\nBridge 1\n"#,
+ "b2" => r#"\n\nBridge 2\n"#,
+ "e1" => r#"\n\nEnding 1\n"#,
+ "e2" => r#"\n\nEnding 2\n"#,
+ "o1" => r#"\n\nOther 1\n"#,
+ "o2" => r#"\n\nOther 2\n"#,
_ => "",
};
let lyric = format!("{verse_title}{lyric}");
let lyric = lyric.replace(
- "\\n", r"
-",
+ "\\n", r#"
+"#,
);
lyrics.push(lyric);
}
@@ -393,15 +391,15 @@ impl Model {
let result = query(r#"SELECT verse_order as "verse_order!", font_size as "font_size!: i32", background_type as "background_type!", horizontal_text_alignment as "horizontal_text_alignment!", vertical_text_alignment as "vertical_text_alignment!", title as "title!", font as "font!", background as "background!", lyrics as "lyrics!", ccli as "ccli!", author as "author!", audio as "audio!", id as "id: i32" from songs"#).fetch_all(db).await;
match result {
Ok(s) => {
- for song in s {
+ for song in s.into_iter() {
match Song::from_row(&song) {
Ok(song) => {
let _ = self.add_item(song);
}
Err(e) => {
- error!("Could not convert song: {e}");
+ error!("Could not convert song: {e}")
}
- }
+ };
}
}
Err(e) => {
@@ -411,65 +409,6 @@ impl Model {
}
}
-pub async fn remove_from_db(
- db: PoolConnection,
- id: i32,
-) -> Result<()> {
- query!("DELETE FROM songs WHERE id = $1", id)
- .execute(&mut db.detach())
- .await
- .into_diagnostic()
- .map(|_| ())
-}
-
-pub async fn add_song_to_db(
- db: PoolConnection,
-) -> Result {
- let mut db = db.detach();
- let mut song = Song::default();
-
- let verse_order = {
- if let Some(vo) = song.verse_order.clone() {
- vo.into_iter()
- .map(|mut s| {
- s.push(' ');
- s
- })
- .collect::()
- } else {
- String::new()
- }
- };
-
- let audio = song
- .audio
- .clone()
- .map(|a| a.to_str().unwrap_or_default().to_string());
-
- let background = song
- .background
- .clone()
- .map(|b| b.path.to_str().unwrap_or_default().to_string());
-
- let res = query!(
- r#"INSERT INTO songs (title, lyrics, author, ccli, verse_order, audio, font, font_size, background) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"#,
- song.title,
- song.lyrics,
- song.author,
- song.ccli,
- verse_order,
- audio,
- song.font,
- song.font_size,
- background
- )
- .execute(&mut db)
- .await
- .into_diagnostic()?;
- song.id = res.last_insert_rowid() as i32;
- Ok(song)
-}
-
pub async fn update_song_in_db(
item: Song,
db: PoolConnection,
@@ -485,7 +424,7 @@ pub async fn update_song_in_db(
})
.collect::()
} else {
- String::new()
+ String::from("")
}
};
@@ -548,13 +487,13 @@ impl Song {
let verse_order = self.verse_order.clone();
let mut lyric_map = HashMap::new();
- let mut verse_title = String::new();
- let mut lyric = String::new();
+ let mut verse_title = String::from("");
+ let mut lyric = String::from("");
for (i, line) in raw_lyrics.split('\n').enumerate() {
if VERSE_KEYWORDS.contains(&line) {
if i != 0 {
lyric_map.insert(verse_title, lyric);
- lyric = String::new();
+ lyric = String::from("");
verse_title = line.to_string();
} else {
verse_title = line.to_string();
@@ -595,7 +534,7 @@ impl Song {
lyric_list.push(lyric.to_string());
} else {
// error!("NOT WORKING!");
- }
+ };
}
// for lyric in lyric_list.iter() {
// debug!(lyric = ?lyric)
@@ -686,27 +625,7 @@ You saved my soul"
let lyrics = song.get_lyrics();
match lyrics {
Ok(lyrics) => {
- assert_eq!(
- vec![
- "From the Day\nI Am They",
- "When You found me,\nI was so blind\nMy sin was before me,\nI was swallowed by pride",
- "But out of the darkness,\nYou brought me to Your light\nYou showed me new mercy\nAnd opened up my eyes",
- "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home",
- "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul",
- "Where brilliant light\nIs all around\nAnd endless joy\nIs the only sound",
- "Oh, rest my heart\nForever now\nOh, in Your arms\nI'll always be found",
- "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home",
- "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul",
- "My love is Yours\nMy heart is Yours\nMy life is Yours\nForever",
- "My love is Yours\nMy heart is Yours\nMy life is Yours\nForever",
- "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home",
- "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul",
- "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home",
- "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul",
- "Oh Oh Oh\nFrom the day\nYou saved my soul\n"
- ],
- lyrics
- );
+ assert_eq!(vec!["From the Day\nI Am They", "When You found me,\nI was so blind\nMy sin was before me,\nI was swallowed by pride", "But out of the darkness,\nYou brought me to Your light\nYou showed me new mercy\nAnd opened up my eyes", "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home", "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul", "Where brilliant light\nIs all around\nAnd endless joy\nIs the only sound", "Oh, rest my heart\nForever now\nOh, in Your arms\nI'll always be found", "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home", "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul", "My love is Yours\nMy heart is Yours\nMy life is Yours\nForever", "My love is Yours\nMy heart is Yours\nMy life is Yours\nForever", "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home", "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul", "From the day\nYou saved my soul\n'Til the very moment\nWhen I come home", "I'll sing, I'll dance,\nMy heart will overflow\nFrom the day\nYou saved my soul", "Oh Oh Oh\nFrom the day\nYou saved my soul\n"], lyrics);
}
Err(e) => {
assert!(false, "{:?}", e)
@@ -792,8 +711,7 @@ You saved my soul"
background: Some(Background::try_from("file:///home/chris/nc/tfc/openlp/CMG - Bright Mountains 01.jpg").unwrap()),
text_alignment: Some(TextAlignment::MiddleCenter),
font: Some("Quicksand Bold".to_string()),
- font_size: Some(60),
- stroke_size: None,
+ font_size: Some(60)
}
}
diff --git a/src/core/thumbnail.rs b/src/core/thumbnail.rs
index 108ed52..dc100c5 100644
--- a/src/core/thumbnail.rs
+++ b/src/core/thumbnail.rs
@@ -11,9 +11,7 @@ pub fn bg_from_video(
video: &Path,
screenshot: &Path,
) -> Result<(), Box> {
- if screenshot.exists() {
- debug!("Screenshot already exists");
- } else {
+ if !screenshot.exists() {
let output_duration = Command::new("ffprobe")
.args(["-i", &video.to_string_lossy()])
.output()
@@ -28,9 +26,9 @@ pub fn bg_from_video(
let mut duration = log.split_off(duration_index + 10);
duration.truncate(11);
// debug!("rust-duration-is: {duration}");
- let mut hours = String::new();
- let mut minutes = String::new();
- let mut seconds = String::new();
+ let mut hours = String::from("");
+ let mut minutes = String::from("");
+ let mut seconds = String::from("");
for (i, c) in duration.chars().enumerate() {
if i <= 1 {
hours.push(c);
@@ -65,6 +63,8 @@ pub fn bg_from_video(
.expect("failed to execute ffmpeg");
// io::stdout().write_all(&output.stdout).unwrap();
// io::stderr().write_all(&output.stderr).unwrap();
+ } else {
+ debug!("Screenshot already exists");
}
Ok(())
}
@@ -95,10 +95,7 @@ mod test {
let screenshot = bg_path_from_video(video);
let screenshot_string =
screenshot.to_str().expect("Should be thing");
- assert_eq!(
- screenshot_string,
- "/home/chris/.local/share/lumina/thumbnails/moms-funeral.png"
- );
+ assert_eq!(screenshot_string, "/home/chris/.local/share/lumina/thumbnails/moms-funeral.png");
// let runtime = tokio::runtime::Runtime::new().unwrap();
let result = bg_from_video(video, &screenshot);
@@ -121,9 +118,6 @@ mod test {
let screenshot = bg_path_from_video(video);
let screenshot_string =
screenshot.to_str().expect("Should be thing");
- assert_ne!(
- screenshot_string,
- "/home/chris/.local/share/lumina/thumbnails/All WebDev Sucks and you know it.webm"
- );
+ assert_ne!(screenshot_string, "/home/chris/.local/share/lumina/thumbnails/All WebDev Sucks and you know it.webm");
}
}
diff --git a/src/core/videos.rs b/src/core/videos.rs
index e80f9b2..879c14a 100644
--- a/src/core/videos.rs
+++ b/src/core/videos.rs
@@ -11,11 +11,11 @@ use crisp::types::{Keyword, Symbol, Value};
use miette::{IntoDiagnostic, Result};
use serde::{Deserialize, Serialize};
use sqlx::{
- Sqlite, SqliteConnection, SqlitePool, pool::PoolConnection,
- query, query_as,
+ pool::PoolConnection, query, query_as, Sqlite, SqliteConnection,
+ SqlitePool,
};
-use std::path::{Path, PathBuf};
-use tracing::{debug, error};
+use std::path::PathBuf;
+use tracing::error;
#[derive(
Clone, Debug, Default, PartialEq, Serialize, Deserialize,
@@ -30,31 +30,11 @@ pub struct Video {
}
impl From<&Video> for Value {
- fn from(_value: &Video) -> Self {
+ fn from(value: &Video) -> Self {
Self::List(vec![Self::Symbol(Symbol("video".into()))])
}
}
-impl From for Video {
- fn from(value: PathBuf) -> Self {
- let title: String = value.file_name().map_or_else(
- || "Video".into(),
- |filename| filename.to_str().unwrap_or("Video").into(),
- );
- Self {
- title,
- path: value,
- ..Default::default()
- }
- }
-}
-
-impl From<&Path> for Video {
- fn from(value: &Path) -> Self {
- Self::from(value.to_owned())
- }
-}
-
impl Content for Video {
fn title(&self) -> String {
self.title.clone()
@@ -76,9 +56,8 @@ impl Content for Video {
if self.path.exists() {
self.path
.file_name()
- .map_or("Missing video".into(), |f| {
- f.to_string_lossy().to_string()
- })
+ .map(|f| f.to_string_lossy().to_string())
+ .unwrap_or("Missing video".into())
} else {
"Missing video".into()
}
@@ -110,7 +89,7 @@ impl From<&Value> for Video {
let path =
p.to_str().unwrap_or_default().to_string();
let title =
- path.rsplit_once('/').unwrap_or_default().1;
+ path.rsplit_once("/").unwrap_or_default().1;
title.to_string()
});
@@ -144,7 +123,8 @@ impl From<&Value> for Video {
}) {
let pos = loop_pos + 1;
list.get(pos)
- .is_some_and(|l| String::from(l) == *"true")
+ .map(|l| String::from(l) == *"true")
+ .unwrap_or_default()
} else {
false
};
@@ -212,54 +192,17 @@ impl Model