From 5d1d5e7f84361d13a58f38ea77a76f2da6d29bb1 Mon Sep 17 00:00:00 2001 From: Justyna Hudziak Date: Fri, 24 May 2024 15:07:09 +0200 Subject: [PATCH] Initial commit --- .gitignore | 12 + Cargo.lock | 5925 ++++++++++++++++++++ Cargo.toml | 62 + LICENSE | 21 + README.md | 75 + android-res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3925 bytes android-res/mipmap-ldpi/ic_launcher.png | Bin 0 -> 1339 bytes android-res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2300 bytes android-res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6111 bytes android-res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12162 bytes android-res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 19507 bytes build.rs | 7 + docs/img/android-preview.png | Bin 0 -> 189186 bytes docs/img/desktop-preview.png | Bin 0 -> 89291 bytes src/app_main.rs | 88 + src/lib.rs | 91 + src/main.rs | 27 + src/weather/dummyweather.json | 620 ++ src/weather/dummyweathercontroller.rs | 92 + src/weather/mod.rs | 18 + src/weather/openweathercontroller.rs | 453 ++ src/weather/utils.rs | 9 + src/weather/weathercontroller.rs | 112 + src/weather/weatherdisplaycontroller.rs | 489 ++ ui/about-box.slint | 87 + ui/assets/busy-indicator.png | Bin 0 -> 3723 bytes ui/assets/felgo-logo.svg | 24 + ui/assets/font-awesome.ttf | Bin 0 -> 165548 bytes ui/assets/weathericons-font.ttf | Bin 0 -> 99564 bytes ui/city_weather.slint | 215 + ui/city_weather_tile.slint | 105 + ui/controls/busy-layer.slint | 47 + ui/controls/generic.slint | 135 + ui/controls/stackview.slint | 133 + ui/controls/weather.slint | 155 + ui/expanded_city_weather_tile.slint | 282 + ui/forecast_with_graph.slint | 125 + ui/location_datatypes.slint | 14 + ui/location_search.slint | 64 + ui/main.slint | 179 + ui/page-base.slint | 5 + ui/style/styles.slint | 28 + ui/ui_utils.slint | 27 + ui/weather_datatypes.slint | 54 + wasm/index.html | 38 + 45 files changed, 9818 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 android-res/mipmap-hdpi/ic_launcher.png create mode 100644 android-res/mipmap-ldpi/ic_launcher.png create mode 100644 android-res/mipmap-mdpi/ic_launcher.png create mode 100644 android-res/mipmap-xhdpi/ic_launcher.png create mode 100644 android-res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android-res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 build.rs create mode 100644 docs/img/android-preview.png create mode 100644 docs/img/desktop-preview.png create mode 100644 src/app_main.rs create mode 100644 src/lib.rs create mode 100644 src/main.rs create mode 100644 src/weather/dummyweather.json create mode 100644 src/weather/dummyweathercontroller.rs create mode 100644 src/weather/mod.rs create mode 100644 src/weather/openweathercontroller.rs create mode 100644 src/weather/utils.rs create mode 100644 src/weather/weathercontroller.rs create mode 100644 src/weather/weatherdisplaycontroller.rs create mode 100644 ui/about-box.slint create mode 100644 ui/assets/busy-indicator.png create mode 100644 ui/assets/felgo-logo.svg create mode 100644 ui/assets/font-awesome.ttf create mode 100644 ui/assets/weathericons-font.ttf create mode 100644 ui/city_weather.slint create mode 100644 ui/city_weather_tile.slint create mode 100644 ui/controls/busy-layer.slint create mode 100644 ui/controls/generic.slint create mode 100644 ui/controls/stackview.slint create mode 100644 ui/controls/weather.slint create mode 100644 ui/expanded_city_weather_tile.slint create mode 100644 ui/forecast_with_graph.slint create mode 100644 ui/location_datatypes.slint create mode 100644 ui/location_search.slint create mode 100644 ui/main.slint create mode 100644 ui/page-base.slint create mode 100644 ui/style/styles.slint create mode 100644 ui/ui_utils.slint create mode 100644 ui/weather_datatypes.slint create mode 100644 wasm/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d8f25b --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Generated by Cargo +.cargo + +# will have compiled files and executables +/target/ + +# These are backup files generated by rustfmt +**/*.rs.bk + +# IDE specific +.vscode +.idea diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..4b903b1 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,5925 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" + +[[package]] +name = "accesskit" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4700bdc115b306d6c43381c344dc307f03b7f0460c304e4892c309930322bd7" + +[[package]] +name = "accesskit_atspi_common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1de72dc7093910a1284cef784b6b143bab0a34d67f6178e4fc3aaaf29a09f8b" +dependencies = [ + "accesskit", + "accesskit_consumer", + "atspi-common", + "serde", + "thiserror", + "zvariant", +] + +[[package]] +name = "accesskit_consumer" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe3a07a32ab5837ad83db3230ac490c8504c2cd5b90ac8c00db6535f6ed65d0b" +dependencies = [ + "accesskit", + "immutable-chunkmap", +] + +[[package]] +name = "accesskit_macos" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a189d159c153ae0fce5f9eefdcfec4a27885f453ce5ef0ccf078f72a73c39d34" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", +] + +[[package]] +name = "accesskit_unix" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b76c448cfd96d16131a9ad3ab786d06951eb341cdac1db908978ab010245a19d" +dependencies = [ + "accesskit", + "accesskit_atspi_common", + "async-channel 2.3.1", + "async-executor", + "async-task", + "atspi", + "futures-lite 1.13.0", + "futures-util", + "serde", + "zbus", +] + +[[package]] +name = "accesskit_windows" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "682d8c4fb425606f97408e7577793f32e96310b646fa77662eb4216293eddc7f" +dependencies = [ + "accesskit", + "accesskit_consumer", + "paste", + "static_assertions", + "windows 0.54.0", +] + +[[package]] +name = "accesskit_winit" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afbd6d598b7c035639ad2b664aa0edc94c93dc1fc3ebb4b40d8a95fcd43ffac" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "raw-window-handle", + "winit", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-activity" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +dependencies = [ + "android-properties", + "bitflags 2.6.0", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk 0.8.0", + "ndk-context", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-activity" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +dependencies = [ + "android-properties", + "bitflags 2.6.0", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk 0.9.0", + "ndk-context", + "ndk-sys 0.6.0+11769913", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-properties" +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_log-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" + +[[package]] +name = "android_logger" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b07e8e73d720a1f2e4b6014766e6039fd2e96a4fa44e2a78d0e1fa2ff49826" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + +[[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.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy 0.5.2", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.1.0", + "futures-lite 2.3.0", + "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-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-io 2.3.2", + "async-lock 3.3.0", + "blocking", + "futures-lite 2.3.0", + "once_cell", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +dependencies = [ + "async-lock 3.3.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.0", + "rustix 0.38.34", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +dependencies = [ + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.34", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "async-signal" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d" +dependencies = [ + "async-io 2.3.2", + "async-lock 3.3.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.34", + "signal-hook-registry", + "slab", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-std" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +dependencies = [ + "async-channel 1.9.0", + "async-global-executor", + "async-io 1.13.0", + "async-lock 2.8.0", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite 1.13.0", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[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", + "zbus_names", + "zvariant", +] + +[[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", +] + +[[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", +] + +[[package]] +name = "auto_enums" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1899bfcfd9340ceea3533ea157360ba8fa864354eccbceab58e1006ecab35393" +dependencies = [ + "derive_utils", + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.65", + "which", +] + +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block2" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2", +] + +[[package]] +name = "blocking" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +dependencies = [ + "async-channel 2.3.1", + "async-lock 3.3.0", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[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.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "calloop" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" +dependencies = [ + "bitflags 2.6.0", + "log", + "polling 3.7.0", + "rustix 0.38.34", + "slab", + "thiserror", +] + +[[package]] +name = "calloop" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +dependencies = [ + "bitflags 2.6.0", + "log", + "polling 3.7.0", + "rustix 0.38.34", + "slab", + "thiserror", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop 0.12.4", + "rustix 0.38.34", + "wayland-backend", + "wayland-client", +] + +[[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", + "rustix 0.38.34", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "cc" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading 0.8.3", +] + +[[package]] +name = "clipboard-win" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342" +dependencies = [ + "lazy-bytes-cast", + "winapi", +] + +[[package]] +name = "clru" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" + +[[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 0.5.0", + "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 = "codemap" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e769b5c8c8283982a987c6e948e540254f1058d5a74b8794914d4ef5fc2a24" + +[[package]] +name = "codemap-diagnostic" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc20770be05b566a963bf91505e60412c4a2d016d1ef95c5512823bb085a8122" +dependencies = [ + "codemap", + "termcolor", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "console_log" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f" +dependencies = [ + "log", + "web-sys", +] + +[[package]] +name = "const-field-offset" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91fcde4ca1211b5a94b573083c472ee19e86b19a441913f66e1cc5c41daf0255" +dependencies = [ + "const-field-offset-macro", + "field-offset", +] + +[[package]] +name = "const-field-offset-macro" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5387f5bbc9e9e6c96436ea125afa12614cebf8ac67f49abc08c1e7a891466c90" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "copypasta" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb85422867ca93da58b7f95fb5c0c10f6183ed6e1ef8841568968a896d3a858" +dependencies = [ + "clipboard-win", + "objc", + "objc-foundation", + "objc_id", + "smithay-clipboard", + "x11-clipboard", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core-graphics" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core-text" +version = "20.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d2790b5c08465d49f8dc05c8bcae9fea467855947db39b0f8145c091aaced5" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types 0.5.0", + "libc", +] + +[[package]] +name = "countme" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" + +[[package]] +name = "cpp" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa65869ef853e45c60e9828aa08cdd1398cb6e13f3911d9cb2a079b144fcd64" +dependencies = [ + "cpp_macros", +] + +[[package]] +name = "cpp_build" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e361fae2caf9758164b24da3eedd7f7d7451be30d90d8e7b5d2be29a2f0cf5b" +dependencies = [ + "cc", + "cpp_common", + "lazy_static", + "proc-macro2", + "regex", + "syn 2.0.65", + "unicode-xid", +] + +[[package]] +name = "cpp_common" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1a2532e4ed4ea13031c13bc7bc0dbca4aae32df48e9d77f0d1e743179f2ea1" +dependencies = [ + "lazy_static", + "proc-macro2", + "syn 2.0.65", +] + +[[package]] +name = "cpp_macros" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ec9cc90633446f779ef481a9ce5a0077107dd5b87016440448d908625a83fd" +dependencies = [ + "aho-corasick", + "byteorder", + "cpp_common", + "lazy_static", + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "css-color-parser2" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8ed1639f4b56ec6f31d007ff66ce4a13099dce5a9995d48368a30d62bf04bd" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "ctor-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f791803201ab277ace03903de1594460708d2d54df6053f2d9e82f592b19e3b" + +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" + +[[package]] +name = "data-url" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "derive_utils" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61bb5a1014ce6dfc2a378578509abe775a5aa06bff584a547555d9efdb81b926" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading 0.8.3", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" + +[[package]] +name = "drm" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edf9159ef4bcecd0c5e4cbeb573b8d0037493403d542780dba5d840bbf9df56f" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "drm-ffi", + "drm-fourcc", + "nix 0.26.4", +] + +[[package]] +name = "drm-ffi" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1352481b7b90e27a8a1bf8ef6b33cf18b98dba7c410e75c24bb3eef2f0d8d525" +dependencies = [ + "drm-sys", + "nix 0.26.4", +] + +[[package]] +name = "drm-fourcc" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" + +[[package]] +name = "drm-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1369f1679d6b706d234c4c1e0613c415c2c74b598a09ad28080ba2474b72e42d" +dependencies = [ + "libc", +] + +[[package]] +name = "dwrote" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" +dependencies = [ + "lazy_static", + "libc", + "serde", + "serde_derive", + "winapi", + "wio", +] + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enumflags2" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "euclid" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" +dependencies = [ + "num-traits", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.0", + "pin-project-lite", +] + +[[package]] +name = "exr" +version = "1.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "femtovg" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47921d14afc4daad9bedc926099bc6edcaa23e37a957448f86cdefcbafe2f632" +dependencies = [ + "bitflags 2.6.0", + "fnv", + "glow", + "image 0.25.2", + "imgref", + "log", + "lru", + "rgb", + "rustybuzz", + "slotmap", + "unicode-bidi", + "unicode-segmentation", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset 0.9.1", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "flate2" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fontconfig-parser" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d" +dependencies = [ + "roxmltree 0.19.0", +] + +[[package]] +name = "fontdb" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e32eac81c1135c1df01d4e6d4233c47ba11f6a6d07f33e0bba09d18797077770" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2 0.9.4", + "slotmap", + "tinyvec", + "ttf-parser", +] + +[[package]] +name = "fontdue" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efe23d02309319171d00d794c9ff48d4f903c0e481375b1b04b017470838af04" +dependencies = [ + "hashbrown", + "ttf-parser", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gbm" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ec389cda876966cf824111bf6e533fb934c711d473498279964a990853b3c6" +dependencies = [ + "bitflags 1.3.2", + "drm", + "drm-fourcc", + "gbm-sys", + "libc", +] + +[[package]] +name = "gbm-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63eba9b9b7a231514482deb08759301c9f9f049ac6869403f381834ebfeaf67" +dependencies = [ + "libc", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "gethostname" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" +dependencies = [ + "libc", + "windows-targets 0.48.5", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gif" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "gl_generator" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" +dependencies = [ + "khronos_api", + "log", + "xml-rs", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "glow" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2491aa3090f682ddd920b184491844440fdd14379c7eef8f5bc10ef7fb3242fd" +dependencies = [ + "bitflags 2.6.0", + "cfg_aliases", + "cgl", + "core-foundation", + "dispatch", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "libloading 0.8.3", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", + "raw-window-handle", + "wayland-sys", + "windows-sys 0.52.0", + "x11-dl", +] + +[[package]] +name = "glutin-winit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" +dependencies = [ + "cfg_aliases", + "glutin", + "raw-window-handle", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae99fff4d2850dbe6fb8c1fa8e4fead5525bab715beaacfccf3fb994e01c827" +dependencies = [ + "gl_generator", + "windows-sys 0.52.0", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c2b2d3918e76e18e08796b55eb64e8fe6ec67d5a6b2e2a7e2edce224ad24c63" +dependencies = [ + "gl_generator", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "i-slint-backend-android-activity" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da124c519f5defb8f25a3bb000396e11b0c32c799237e45ac1f1514be36472f" +dependencies = [ + "android-activity 0.5.2", + "android-activity 0.6.0", + "i-slint-core", + "i-slint-renderer-skia", + "jni", + "ndk 0.9.0", + "raw-window-handle", +] + +[[package]] +name = "i-slint-backend-linuxkms" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17924cec94f3411fb3b2ef25259ceca0eae837db5387e13c4052c3e1fcccc190" +dependencies = [ + "bytemuck", + "calloop 0.12.4", + "drm", + "gbm", + "gbm-sys", + "glutin", + "i-slint-common", + "i-slint-core", + "i-slint-renderer-femtovg", + "input", + "memmap2 0.9.4", + "nix 0.27.1", + "raw-window-handle", + "xkbcommon", +] + +[[package]] +name = "i-slint-backend-qt" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bc990b005abc9dd10b133e01398a76d3894af8763740fe683304056006f2d88" +dependencies = [ + "const-field-offset", + "cpp", + "cpp_build", + "i-slint-common", + "i-slint-core", + "i-slint-core-macros", + "lyon_path", + "once_cell", + "pin-project", + "pin-weak", + "qttypes", + "vtable", +] + +[[package]] +name = "i-slint-backend-selector" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1398edffc061119b3fc547e5cde49683d47de806f1d8e431faa913a995c66d12" +dependencies = [ + "cfg-if", + "i-slint-backend-linuxkms", + "i-slint-backend-qt", + "i-slint-backend-winit", + "i-slint-common", + "i-slint-core", +] + +[[package]] +name = "i-slint-backend-winit" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc34a993838bd2d3625f1f64ae4324b490dbb0e1e410a0be71fffaae1df825" +dependencies = [ + "accesskit", + "accesskit_winit", + "bytemuck", + "cfg-if", + "cfg_aliases", + "cocoa", + "const-field-offset", + "copypasta", + "derive_more", + "glutin", + "glutin-winit", + "i-slint-common", + "i-slint-core", + "i-slint-core-macros", + "i-slint-renderer-femtovg", + "i-slint-renderer-skia", + "imgref", + "lyon_path", + "once_cell", + "pin-weak", + "raw-window-handle", + "rgb", + "scoped-tls-hkt", + "scopeguard", + "softbuffer", + "wasm-bindgen", + "web-sys", + "winit", +] + +[[package]] +name = "i-slint-common" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79721ae5b531dc2c5e1ecc2160e042c2563e0bf7cde688e0f27fc3feb90ccd60" +dependencies = [ + "cfg-if", + "derive_more", + "fontdb", + "libloading 0.8.3", +] + +[[package]] +name = "i-slint-compiler" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cc4854b2842ef0858d6c5a483e0125b8db70a84d270497743d104f322314b97" +dependencies = [ + "by_address", + "codemap", + "codemap-diagnostic", + "css-color-parser2", + "derive_more", + "fontdue", + "i-slint-common", + "image 0.24.9", + "itertools 0.13.0", + "linked_hash_set", + "lyon_extra", + "lyon_path", + "num_enum", + "once_cell", + "proc-macro2", + "quote", + "resvg", + "rowan", + "smol_str", + "strum", + "thiserror", + "url", +] + +[[package]] +name = "i-slint-core" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d980dabb573ca810538a47647c9ab98c58daa97a06d51d912300ba5abc719bb0" +dependencies = [ + "auto_enums", + "bitflags 2.6.0", + "bytemuck", + "cfg-if", + "chrono", + "clru", + "const-field-offset", + "derive_more", + "euclid", + "fontdue", + "i-slint-common", + "i-slint-core-macros", + "image 0.24.9", + "integer-sqrt", + "lyon_algorithms", + "lyon_extra", + "lyon_geom", + "lyon_path", + "num-traits", + "once_cell", + "pin-project", + "pin-weak", + "portable-atomic", + "raw-window-handle", + "resvg", + "rgb", + "rustybuzz", + "scoped-tls-hkt", + "scopeguard", + "slab", + "static_assertions", + "strum", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", + "vtable", + "wasm-bindgen", + "web-sys", + "web-time", +] + +[[package]] +name = "i-slint-core-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f38c93191fc4264887ac9fdcd8537f81353df9be20254039d880f36bad97ac1" +dependencies = [ + "quote", + "syn 2.0.65", +] + +[[package]] +name = "i-slint-renderer-femtovg" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85a2de6699a2e2d4faaa6780621366c5363de8580af53dc5edeafa408b92686" +dependencies = [ + "cfg-if", + "const-field-offset", + "core-foundation", + "core-text", + "derive_more", + "dwrote", + "femtovg", + "glow", + "i-slint-common", + "i-slint-core", + "i-slint-core-macros", + "imgref", + "lyon_path", + "once_cell", + "pin-weak", + "rgb", + "scoped-tls-hkt", + "ttf-parser", + "unicode-script", + "unicode-segmentation", + "wasm-bindgen", + "web-sys", + "winapi", +] + +[[package]] +name = "i-slint-renderer-skia" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "535141cb4349f3677d097a46170b07cc11672dbb1dbdc7eade4a3b6f4ed2a110" +dependencies = [ + "bytemuck", + "cfg-if", + "cfg_aliases", + "cocoa", + "const-field-offset", + "core-foundation", + "core-graphics-types", + "derive_more", + "foreign-types 0.5.0", + "glow", + "glutin", + "i-slint-common", + "i-slint-core", + "i-slint-core-macros", + "lyon_path", + "metal", + "objc", + "once_cell", + "pin-weak", + "raw-window-handle", + "scoped-tls-hkt", + "skia-safe", + "softbuffer", + "unicode-segmentation", + "vtable", + "windows 0.56.0", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-traits", + "png", + "qoi", + "tiff", +] + +[[package]] +name = "image" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", +] + +[[package]] +name = "imagesize" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" + +[[package]] +name = "imgref" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" + +[[package]] +name = "immutable-chunkmap" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4419f022e55cc63d5bbd6b44b71e1d226b9c9480a47824c706e9d54e5c40c5eb" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "input" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e74cd82cedcd66db78742a8337bdc48f188c4d2c12742cbc5cd85113f0b059" +dependencies = [ + "bitflags 1.3.2", + "input-sys", + "io-lifetimes", + "libc", + "log", + "udev", +] + +[[package]] +name = "input-sys" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd4f5b4d1c00331c5245163aacfe5f20be75b564c7112d45893d4ae038119eb0" + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "java-locator" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90003f2fd9c52f212c21d8520f1128da0080bad6fff16b68fe6e7f2f0c3780c2" +dependencies = [ + "glob", + "lazy_static", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "java-locator", + "jni-sys", + "libloading 0.7.4", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos_api" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" + +[[package]] +name = "kurbo" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5aa9f0f96a938266bdb12928a67169e8d22c6a786fda8ed984b85e6ba93c3c" +dependencies = [ + "arrayvec", + "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-bytes-cast" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +dependencies = [ + "value-bag", +] + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" + +[[package]] +name = "lyon_algorithms" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3bca95f9a4955b3e4a821fbbcd5edfbd9be2a9a50bb5758173e5358bfb4c623" +dependencies = [ + "lyon_path", + "num-traits", +] + +[[package]] +name = "lyon_extra" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4a243ce61e7e5f3ae6c72a88d8fb081b6c69f13500c15e99cfd1159a833b20" +dependencies = [ + "lyon_path", + "thiserror", +] + +[[package]] +name = "lyon_geom" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + +[[package]] +name = "lyon_path" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c08a606c7a59638d6c6aa18ac91a06aa9fb5f765a7efb27e6a4da58700740d7" +dependencies = [ + "lyon_geom", + "num-traits", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memmap2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +dependencies = [ + "bitflags 2.6.0", + "block", + "core-graphics-types", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys 0.6.0+11769913", + "num_enum", + "raw-window-handle", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" + +[[package]] +name = "objc2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "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.6.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", +] + +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" + +[[package]] +name = "objc2-foundation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2", + "dispatch", + "libc", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +dependencies = [ + "critical-section", + "portable-atomic", +] + +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "300.3.1+3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "openweather_sdk" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee22240238746180b55cdf7278c1ac5fb5c59f6dbff7f7d25d8d072c0dc74a0" +dependencies = [ + "reqwest", + "serde", + "tokio", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "orbclient" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +dependencies = [ + "libredox 0.0.2", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b41438d2fc63c46c74a2203bf5ccd82c41ba04347b2fcf5754f230b167067d5" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.1", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pico-args" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pin-weak" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b330c9d1b92dfe68442ca20b009c717d5f0b1e3cf4965e62f704c3c6e95a1305" + +[[package]] +name = "piper" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" +dependencies = [ + "atomic-waker", + "fastrand 2.1.0", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 0.38.34", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +dependencies = [ + "critical-section", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.65", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[package]] +name = "proc-macro2" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "qttypes" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d405b0934e4176fb264d6ca597e5c8c2fba562fa155cba681ca160c1eb7edc6e" +dependencies = [ + "cpp", + "cpp_build", + "semver", +] + +[[package]] +name = "quick-xml" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox 0.1.3", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "resvg" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "944d052815156ac8fa77eaac055220e95ba0b01fa8887108ca710c03805d9051" +dependencies = [ + "log", + "pico-args", + "rgb", + "svgtypes", + "tiny-skia", + "usvg", +] + +[[package]] +name = "rgb" +version = "0.8.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "rowan" +version = "0.15.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a58fa8a7ccff2aec4f39cc45bf5f985cec7125ab271cf681c279fd00192b49" +dependencies = [ + "countme", + "hashbrown", + "memoffset 0.9.1", + "rustc-hash", + "text-size", +] + +[[package]] +name = "roxmltree" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" + +[[package]] +name = "roxmltree" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-weather" +version = "1.0.0" +dependencies = [ + "android_logger", + "async-std", + "chrono", + "console_error_panic_hook", + "console_log", + "directories", + "env_logger", + "log", + "openssl", + "openweather_sdk", + "serde", + "serde_json", + "slint", + "slint-build", + "tokio", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "rustybuzz" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" +dependencies = [ + "bitflags 2.6.0", + "bytemuck", + "smallvec", + "ttf-parser", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-properties", + "unicode-script", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scoped-tls-hkt" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ddc765d3410d9f6c6ca071bf0b67f6b01e3ec4595dc3892f02677e75819dddc" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2 0.9.4", + "smithay-client-toolkit 0.19.2", + "tiny-skia", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "serde" +version = "1.0.202" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.202" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simplecss" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" +dependencies = [ + "log", +] + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "skia-bindings" +version = "0.75.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06e19e97660b09a381c6eb566849b63556b1a90b8e2c6ba2d146b3f5066847b" +dependencies = [ + "bindgen", + "cc", + "flate2", + "heck 0.5.0", + "lazy_static", + "regex", + "serde_json", + "tar", + "toml", +] + +[[package]] +name = "skia-safe" +version = "0.75.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad6e6f369522471b585c99427720b53aad04016fa4314e0a8cf23f17083a4e4c" +dependencies = [ + "bitflags 2.6.0", + "lazy_static", + "skia-bindings", + "windows 0.56.0", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slint" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e37776c51062d2c7ab7b9d00612a0d425fd792216fd777c473aee41c531490e4" +dependencies = [ + "const-field-offset", + "i-slint-backend-android-activity", + "i-slint-backend-qt", + "i-slint-backend-selector", + "i-slint-core", + "i-slint-renderer-femtovg", + "num-traits", + "once_cell", + "pin-weak", + "slint-macros", + "vtable", +] + +[[package]] +name = "slint-build" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719fe028aee2f051b9eea782e4d7068fb9b0a1de18426f00d3b2097c79e0e659" +dependencies = [ + "i-slint-compiler", + "spin_on", + "thiserror", + "toml_edit 0.22.13", +] + +[[package]] +name = "slint-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d30b8166c46cf34a91d17bc63281f01fe78fd9017b405ae1624e9740f15fe89" +dependencies = [ + "i-slint-compiler", + "proc-macro2", + "quote", + "spin_on", +] + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smithay-client-toolkit" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" +dependencies = [ + "bitflags 2.6.0", + "calloop 0.12.4", + "calloop-wayland-source 0.2.0", + "cursor-icon", + "libc", + "log", + "memmap2 0.9.4", + "rustix 0.38.34", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols 0.31.2", + "wayland-protocols-wlr 0.2.0", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +dependencies = [ + "bitflags 2.6.0", + "calloop 0.13.0", + "calloop-wayland-source 0.3.0", + "cursor-icon", + "libc", + "log", + "memmap2 0.9.4", + "rustix 0.38.34", + "thiserror", + "wayland-backend", + "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols 0.32.3", + "wayland-protocols-wlr 0.3.3", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-clipboard" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d" +dependencies = [ + "libc", + "smithay-client-toolkit 0.18.1", + "wayland-backend", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "softbuffer" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd" +dependencies = [ + "as-raw-xcb-connection", + "bytemuck", + "cfg_aliases", + "core-graphics", + "fastrand 2.1.0", + "foreign-types 0.5.0", + "js-sys", + "log", + "memmap2 0.9.4", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall 0.5.1", + "rustix 0.38.34", + "tiny-xlib", + "wasm-bindgen", + "wayland-backend", + "wayland-client", + "wayland-sys", + "web-sys", + "windows-sys 0.52.0", + "x11rb", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spin_on" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076e103ed41b9864aa838287efe5f4e3a7a0362dd00671ae62a212e5e4612da2" +dependencies = [ + "pin-utils", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" +dependencies = [ + "float-cmp", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.65", +] + +[[package]] +name = "svgtypes" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fae3064df9b89391c9a76a0425a69d124aee9c5c28455204709e72c39868a43c" +dependencies = [ + "kurbo", + "siphasher", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tar" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand 2.1.0", + "rustix 0.38.34", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "text-size" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233" + +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "tiny-skia" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "png", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tiny-xlib" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d52f22673960ad13af14ff4025997312def1223bfa7c8e4949d099e6b3d5d1c" +dependencies = [ + "as-raw-xcb-connection", + "ctor-lite", + "libloading 0.8.3", + "pkg-config", + "tracing", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.13", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.8", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "ttf-parser" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "udev" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebdbbd670373442a12fe9ef7aeb53aec4147a5a27a00bbc3ab639f08f48191a" +dependencies = [ + "libc", + "libudev-sys", + "pkg-config", +] + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset 0.9.1", + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-bidi-mirroring" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" + +[[package]] +name = "unicode-ccc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + +[[package]] +name = "unicode-script" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd" + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-vo" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "usvg" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b84ea542ae85c715f07b082438a4231c3760539d902e11d093847a0b22963032" +dependencies = [ + "base64 0.22.1", + "data-url", + "flate2", + "fontdb", + "imagesize", + "kurbo", + "log", + "pico-args", + "roxmltree 0.20.0", + "rustybuzz", + "simplecss", + "siphasher", + "strict-num", + "svgtypes", + "tiny-skia-path", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "xmlwriter", +] + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "value-bag" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vtable" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "379cd4a9d99f35bcf1687282268b94b59f14b098cba210632605f39709230963" +dependencies = [ + "const-field-offset", + "portable-atomic", + "stable_deref_trait", + "vtable-macro", +] + +[[package]] +name = "vtable-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c1b85ec843d3bc60e9d65fa7e00ce6549416a25c267b5ea93e6c81e3aa66e5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.65", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wayland-backend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993" +dependencies = [ + "cc", + "downcast-rs", + "rustix 0.38.34", + "scoped-tls", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943" +dependencies = [ + "bitflags 2.6.0", + "rustix 0.38.34", + "wayland-backend", + "wayland-scanner", +] + +[[package]] +name = "wayland-csd-frame" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" +dependencies = [ + "bitflags 2.6.0", + "cursor-icon", + "wayland-backend", +] + +[[package]] +name = "wayland-cursor" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba" +dependencies = [ + "rustix 0.38.34", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79f2d57c7fcc6ab4d602adba364bf59a5c24de57bd194486bf9b8360e06bfc4" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.32.3", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.32.3", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6" +dependencies = [ + "proc-macro2", + "quick-xml", + "quote", +] + +[[package]] +name = "wayland-sys" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148" +dependencies = [ + "dlib", + "log", + "once_cell", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.34", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.54.0" +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.5", +] + +[[package]] +name = "windows" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" +dependencies = [ + "windows-core 0.56.0", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-core" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" +dependencies = [ + "windows-implement 0.56.0", + "windows-interface 0.56.0", + "windows-result", + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-implement" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "windows-implement" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "windows-interface" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "windows-interface" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "windows-result" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winit" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4225ddd8ab67b8b59a2fee4b34889ebf13c0460c1c3fa297c58e21eb87801b33" +dependencies = [ + "ahash", + "android-activity 0.6.0", + "atomic-waker", + "bitflags 2.6.0", + "block2", + "bytemuck", + "calloop 0.13.0", + "cfg_aliases", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2 0.9.4", + "ndk 0.9.0", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", + "rustix 0.38.34", + "sctk-adwaita", + "smithay-client-toolkit 0.19.2", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.32.3", + "wayland-protocols-plasma", + "web-sys", + "web-time", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi", +] + +[[package]] +name = "x11-clipboard" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98785a09322d7446e28a13203d2cae1059a0dd3dfb32cb06d0a225f023d8286" +dependencies = [ + "libc", + "x11rb", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" +dependencies = [ + "as-raw-xcb-connection", + "gethostname", + "libc", + "libloading 0.8.3", + "once_cell", + "rustix 0.38.34", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" + +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys 0.4.14", + "rustix 0.38.34", +] + +[[package]] +name = "xcursor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" + +[[package]] +name = "xdg-home" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" +dependencies = [ + "libc", + "windows-sys 0.52.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-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.6.0", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" + +[[package]] +name = "xml-rs" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + +[[package]] +name = "zbus" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "byteorder", + "derivative", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.26.4", + "once_cell", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zvariant" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..91f169e --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,62 @@ +[package] +name = "rusty-weather" +version = "1.0.0" +authors = ["FELGO GmbH "] +edition = "2021" +build = "build.rs" + +[features] +open_weather = ["dep:openweather_sdk", "dep:openssl"] + +[dependencies] +async-std = "1.12.0" +chrono = "0.4.38" +directories = "5.0.1" +log = "0.4.21" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0.115" +slint = { version = "1.7", features = [ "backend-android-activity-06" ] } + +[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies] +env_logger = "0.11.3" + +[target.'cfg(target_os = "android")'.dependencies] +android_logger = "0.14.1" +openssl = { version = "0.10", features = ["vendored"], optional = true } + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +openweather_sdk = { version = "0.1.8", optional = true } +tokio = "1.37.0" + +[target.'cfg(target_arch = "wasm32")'.dependencies] +console_log = "1.0" +console_error_panic_hook = "0.1.7" +wasm-bindgen = "0.2" +wasm-bindgen-futures = "0.4" + +[build-dependencies] +slint-build = "1.7" + +# Android-activity / wasm support +[lib] +name="rusty_weather_lib" +crate-type = ["cdylib"] +path = "src/lib.rs" + +# Andoroid settings +# See more: https://github.com/rust-mobile/cargo-apk?tab=readme-ov-file#manifest +[package.metadata.android] +package = "com.felgo.demos.rustyweather" +resources = "android-res" +build_targets = [ "aarch64-linux-android" ] + +[package.metadata.android.sdk] +min_sdk_version = 29 +target_sdk_version = 32 + +[package.metadata.android.application] +label = "Rusty Weather" +icon = "@mipmap/ic_launcher" + +[[package.metadata.android.uses_permission]] +name = "android.permission.INTERNET" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..797a2bd --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 FELGO GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0025f79 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Rusty Weather + +Rusty Weather is a weather application made by [Felgo](https://felgo.com/). + +The application retrieves weather data from the [OpenWeather](https://openweathermap.org/) API to provide: +* Real-time weather data, +* 8-day forecasts data, +* Temperatures at particular times of the day, +* Daily rain amount and rain probability, +* UV index level, +* support for various locations around the globe. + + The project demonstrates how to write a cross-platform Rust GUI application using the [Slint](https://slint.dev/) toolkit. + It includes subjects like: + * responsive layouts and adaptions for different screen sizes and orientations, + * providing fully customized look and feel with custom widgets, + * integrating Slint code with the Rust backend code, + * using `async` features with a Slint-based application and combining it with the Tokio runtime. + +
+

+ + +

+ +## Weather data +To enable real weather data from the [OpenWeather](https://openweathermap.org/) API, you must enable the `open_weather` feature and provide the `RUSTY_WEATHER_API_KEY` environment variable with your API key at build time. The [OpenCall API](https://openweathermap.org/price#onecall) subscription is required. + +If you do not enable the feature or provide the key, the application loads the dummy data instead. + +**Note:** You cannot use real weather data for the WebAssembly target. + +# Supported platforms + +## Desktop +The application runs on all desktop platforms (Windows, Linux and macOS). + +To start the application, execute: + +``` +cargo run +``` + +## Android +To be able to compile the application for Android, you must follow an initial setup. The instruction is available in [Slint's documentation](https://snapshots.slint.dev/master/docs/rust/slint/android/#building-and-deploying). + +***Note:*** To build `openssl` for Android, you must ensure that the proper development libraries are available in the system and provided in the `PATH` variable. + +To start the application, execute: + +``` +cargo apk run --lib +``` + +## WebAssembly +It is also possible to embed the application in a web page. You need to install the `wasm-pack` crate for this. + +``` +cargo install wasm-pack +``` + +To build the application, execute: + +``` +wasm-pack build --target web --out-dir /pkg +``` + +To run locally: + +``` +cp /wasm/index.html / # you can also provide your HTML file +cd & python3 -m http.server +``` + +Now, you can access the application at http://localhost:8000/. diff --git a/android-res/mipmap-hdpi/ic_launcher.png b/android-res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..61901196006fe0fd238c4880b056f309ec27803a GIT binary patch literal 3925 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 literal 0 HcmV?d00001 diff --git a/android-res/mipmap-ldpi/ic_launcher.png b/android-res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..054e396361be7cb0dac690d8961d52d6672de390 GIT binary patch literal 1339 zcmV-B1;qM^P)8v@{+V=joZQHhO+qP}nHrE=hy`!YxKgs0OslQH7)^{dJ>AZXI>rx8< zNB_yt z-1lR=bk@8VHB9bI2&xJSZW#qtPYjv501h`ISq0d75PQ8MFK16vHoMWeHj=wRz&i0^ z0}(|Y{c&OI$>h#u^X4C8RCFKkh;30Kg1HW@VfPD(;EU?eQ1=N`w9GnEGEo)O6E4^$ zwM6Qrz<2K%@PwqejoT~Y^m{?92!U(YdxBGjy`FCH`$d{HY{$B-#(&QIdhWCSDdVfkpjsUD6Wc-?~WOg`XH4(RjA|HZkny=(`#4T^o1zt8W=Ox~PO4Hy9;wq$=< z2$=L(f6_P;B_yDC$10xM>`Dq+&F98H_GA0^ZeZv4ujS!!yD_vRkLP#!osD{QqGdb| z;!Vyh@eN=wCVG$o5kW<`WW%yWmX z$M0us&IMcarB&S6RUvL%ycJ;##wyA@;}HdaF{1Df2IfovQ98C<#)gHz@=?{gd^4wi zI%PNQIG8K88%S=umbhrsGT^ukdhyi$qZw5+g<<*sf@szi5xA%59$mlTx)HYlf}(8j z?%gOMEldMHFDyyBIcRtp`-~`~If%fz-Ew$!j{s($!~S1f!B?~UN1r49GJKDG2 zqy?*ke);XWW4pmNE)I>qMy-(HohS47c8iI}3~K`GcFkdMVSC3c7nJD6K0?!|>0C)j)N z8X{Naw^@sDFR?}tB;r<^(168>_B{B@bm|gG)&#zoK9|4dEOEAG!Qf9oa0bAH`AazC z{l8XQ#JD+&IrGE6z0C*$yzKi`MR;q{OvXL4goB55VPs)P+60CbfdaE@>Un?49G>~B zoZ3W)&l9-mK(!em!lZ@ExcIYiHgI-$H+At`ImdlUKsiWvG9wj0HEUL61qJvJ|IRLy z2deU%2pigV1$76i`axG5B3a*#Qru>WX@8%HdEL8eJKMFSKiCgm*}r~c#|zEBYo<8U x+}!sgK)gq|_!tpQzn-%eAwqe|d5Rop_zz1bnEw@%08an_002ovPDHLkV1jh2gZ=;j literal 0 HcmV?d00001 diff --git a/android-res/mipmap-mdpi/ic_launcher.png b/android-res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5032804635f7d90c849583d9b6d2f0a1c385530d GIT binary patch literal 2300 zcmVwQX~Z-0$A5t~&MI)2G(xbDl+Q z()~PzWM8=S>%NSph$yfB?Wok|hKQ7wKv*)8gnTLp{e)-^gno>C)Eo#QK0w}=GzCK5 zYYN;)ysII`@XsamKAVr|UiLld-r`x}xyb@@At!RX@8hNj#3i90$o>DKGFtDCN^3eA znbHW6$w*QIM0|#PYV%10gnv8(!aqVj6oh?X^FH$4bc@h;ZQfysae9s5eMG*W?)Q<+ z$Mh`wnV$*Bg`CKZ9HTO3-A~SH=3{XnD!r*YDzy<<0KozXQ-Fc@^Z-rX6p+LM(2-op z84=qi+S`0IDy5GN+CiR>@-jfm^8oVF1IU@&UD25>4SIlx-~r}s9=8w%kh>KS?QH^wZDjZ~LL4GO zQS7_vW8q85^(4#0nLOM3h~d-6A;4=0Ft38Pl~}~Dax0;C^IdR!Z4@MaR;z?1;auG5 z;GTc>$yEeoQ9za*K=5s3`c80&cy3S<1h?D)!L7H#*Sv$&O!FD%^5Jajm=7=F)dHd@ zAcF?fDmb47z7jlw1$^B*Sc!6RzHOWjuHo>aD>+B80JaK#L*jJ>MvlkGJmCzvVXgU114rPqRFq zeHGx>0`v$h)g$7)Q()%oU#W*%_9^Sp_KKN=@t$45&@#E|f@VC+o_)AG9eA`zG zp>l8AKmW0)5Z`~RC0{Y&2`+D#c_wcKGy}P-01FxehkYjGoy7Sk4#KvMaLtkd zxfqZo2F)u$(9#O%f#1&?4qKOf1!ZY#-9f8E@&YkNvyI#D=aA@~fU`}XXaXT_k|&(y zRY0x`$Zn>A^G4`f>TB6`uzOX4kVIJuNgDS$JX}=>k5}hH&iLnXRpRWhdtt%+-+?C` z53=>;gh+WuaoRR!d2|*5(RuzrECnE9C7K;02zm2Je9-ine^4_%aLN-nHeE?Ypx`(1 zWhBMN z&%YVM@cp4)d=5>JgFM0HML>ZJ$h8OUh$lznz*gMf+gE!80S|mo^R{(!3YjwNSJv!r zS@9JJNo!V1KX%0)aK6kDJ9i}EbKI~IzaxHLI)d+aM|pBacMK@RfIJ$otB{GU_miLw z9>O0(INmr61N`%TYK^rl_%1})%l^=)WzcV!dD9i_Jq5vSiPk-n>)(NBeamq9Tmd55fRTl3$4wrLn z+BpVFrab}iInz;EKdc0oZxL7lMY96#{1)I5F|-;)wt#LZ`K>-SR8_(+tL8y> zZ{KAF>^y!B{ylOD{Iq&LB;>V1G(`w;M|pB4cNJhE%jAo51pHI#8%1?+ZbJwJcYYg= z9GL~@I(y(sUGxEP>|7@dUA_yxSvDJDxV&^N&;tr+K#O3j!9yZ(cE&Fn4#EDja5b-^ z=epqUW0qJh*|G{4_yFUo}5*H zhXR};=x4SX0}A}G=VTjP%WK8HlgdxZdsILv1{8?_w{wVEk?)q)!SeNm);_(K7kxbc zbKFwpN3P@?TRK|?w9){jr$UJ2NpIPI^Sl|l&TYOf z0TVZf0OeUC1IlLy22g;AU?GC_3Bd${R3Y{r>9`kiTe~5+}%++(kgC7~moL z)}neh^6K<8*X0oZy=I9Jmz2tY3OhiLFoYzO`eFO=bJsLr!Jgyb*2E>`E&|H*KVT6K zA^)mb3hmv!*F^qwXE*$EM*u<4^s-yd=${%a%gumA= z1y3oL7m&LMC>H}f#2AAS-yb{|#;)CW#aH8OXAcYw?1pa*nxjcG%C&&Fa=$g;9Ab`f zm$X0}j{SbjB6w{4@=Ire0Plm(^@E#BD{;aPXdba%Q(Ng5wnAI3{HUaRNTOMsW_g zk~88WdFy}npaJ7bn4>smIisu@awJ!BcJYgrB!SLE_3Q>Z;hyRn19BlJawA8?CHXIX W5-B#7%*-SJ0000dtf0tf9P<19!5+H4Cq2je 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 Ef^Sn8BLDyZ literal 0 HcmV?d00001 diff --git a/android-res/mipmap-xxxhdpi/ic_launcher.png b/android-res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2d351e2ba0911ee3e68b64f06d22fa9b22aa70 GIT binary patch literal 19507 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 W^>uEj%o_0k0000K-j;DP)3^DXWH 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%0Dajnnq(>Z@q`|PpR7do>I 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

^! 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%0D7zQ5dvv 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, + support_add_city: bool, +} + +impl AppHandler { + pub fn new() -> Self { + #[cfg_attr( + any(target_arch = "wasm32", not(feature = "open_weather")), + allow(unused_mut) + )] + let mut support_add_city = false; + + #[cfg_attr( + any(target_arch = "wasm32", not(feature = "open_weather")), + allow(unused_mut) + )] + let mut data_controller_opt: Option = None; + + #[cfg(all(not(target_arch = "wasm32"), feature = "open_weather"))] + { + if let Some(api_key) = std::option_env!("RUSTY_WEATHER_API_KEY") { + data_controller_opt = Some(Box::new(OpenWeatherController::new(api_key.into()))); + support_add_city = true; + } + } + + let data_controller = match data_controller_opt { + Some(data_contoller_some) => data_contoller_some, + None => { + log::info!("Weather API key not provided. Using dummy data."); + Box::new(DummyWeatherController::new()) + } + }; + let data_controller: WeatherControllerSharedPointer = Arc::new(Mutex::new(data_controller)); + + Self { + weather_controller: data_controller.clone(), + weather_display_controller: WeatherDisplayController::new(&data_controller), + window: None, + support_add_city, + } + } + + pub fn save(&self) { + log::debug!("Saving state"); + if let Err(e) = self.weather_controller.lock().unwrap().save() { + log::warn!("Error while saving state: {}", e) + } + } + + #[cfg_attr(not(target_os = "android"), allow(dead_code))] + pub fn reload(&self) { + log::debug!("Reloading state"); + if let Some(window) = &self.window { + self.weather_display_controller.refresh(window); // load new weather data + } else { + log::warn!("Cannot reload state, window not available."); + } + } + + pub fn initialize_ui(&mut self) { + let window = AppWindow::new().expect("Cannot create main window!"); + self.weather_display_controller + .initialize_ui(&window, self.support_add_city); + + self.window = Some(window); + } + + pub fn run(&self) -> Result<(), slint::PlatformError> { + let window = self.window.as_ref().expect("Cannot access main window!"); + self.weather_display_controller.load(window); + window.run() + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..979cb31 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,91 @@ +#![cfg(any(target_os = "android", target_arch = "wasm32"))] + +pub mod ui { + slint::include_modules!(); +} + +mod app_main; +mod weather; + +use crate::app_main::AppHandler; + +// Android +#[cfg(target_os = "android")] +use { + crate::android_activity::{MainEvent, PollEvent}, + core::cell::RefCell, + slint::android::android_activity, + std::rc::Rc, +}; + +#[cfg(target_os = "android")] +#[no_mangle] +fn android_main(android_app: slint::android::AndroidApp) -> Result<(), slint::PlatformError> { + android_logger::init_once(android_logger::Config::default().with_max_level( + if cfg!(debug_assertions) { + log::LevelFilter::Debug + } else { + log::LevelFilter::Info + }, + )); + + let app_handler = Rc::new(RefCell::new(AppHandler::new())); + + // initialize android before creating main window + slint::android::init_with_event_listener(android_app, { + let app_handler = app_handler.clone(); + move |event| match event { + PollEvent::Main(main_event) => match main_event { + MainEvent::Start => { + app_handler.borrow().reload(); + } + MainEvent::Resume { .. } => { + app_handler.borrow().reload(); + } + MainEvent::SaveState { .. } => { + app_handler.borrow().save(); + } + _ => {} + }, + _ => {} + } + }) + .unwrap(); + + { + // create main window here + let mut app_handler = app_handler.borrow_mut(); + app_handler.initialize_ui(); + } + + let app_handler = app_handler.borrow(); + app_handler.run() +} + +// Wasm +#[cfg(target_arch = "wasm32")] +#[wasm_bindgen::prelude::wasm_bindgen(start)] +pub fn main() { + #[cfg(debug_assertions)] + console_error_panic_hook::set_once(); + + console_log::init_with_level(if cfg!(debug_assertions) { + log::Level::Debug + } else { + log::Level::Info + }) + .ok(); + + let mut app_handler = AppHandler::new(); + app_handler.initialize_ui(); + + let res = app_handler.run(); + app_handler.save(); + + match res { + Ok(()) => {} + Err(e) => { + log::error!("Runtime error: {}", e); + } + } +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..446c7e2 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,27 @@ +#![cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))] + +use crate::app_main::AppHandler; + +pub mod ui { + slint::include_modules!(); +} + +mod app_main; +mod weather; + +fn main() -> Result<(), slint::PlatformError> { + env_logger::Builder::default() + .filter_level(if cfg!(debug_assertions) { + log::LevelFilter::Debug + } else { + log::LevelFilter::Info + }) + .init(); + + let mut app_handler = AppHandler::new(); + app_handler.initialize_ui(); + + let res = app_handler.run(); + app_handler.save(); + res +} diff --git a/src/weather/dummyweather.json b/src/weather/dummyweather.json new file mode 100644 index 0000000..e11d729 --- /dev/null +++ b/src/weather/dummyweather.json @@ -0,0 +1,620 @@ +[ + { + "city_data": { + "lat": 52.51703643798828, + "lon": 13.388859748840332, + "city_name": "Berlin" + }, + "weather_data": { + "current_data": { + "condition": "PartiallyCloudy", + "description": "broken clouds", + "current_temperature": 15.24, + "detailed_temperature": { + "min": 12.39, + "max": 19.27, + "morning": 14.01, + "day": 18.62, + "evening": 15.83, + "night": 13.8 + }, + "precipitation": { + "probability": 1, + "rain_volume": 2.77, + "snow_volume": 0 + }, + "uv_index": 2.3 + }, + "forecast_data": [ + { + "day_name": "d0", + "weather_data": { + "condition": "SunnyRainy", + "description": "moderate rain", + "current_temperature": 16.18, + "detailed_temperature": { + "min": 9.56, + "max": 17.94, + "morning": 10.37, + "day": 16.18, + "evening": 16.71, + "night": 12.45 + }, + "precipitation": { + "probability": 1, + "rain_volume": 2.77, + "snow_volume": 0 + }, + "uv_index": 3.82 + } + }, + { + "day_name": "d1", + "weather_data": { + "condition": "SunnyRainy", + "description": "moderate rain", + "current_temperature": 15.94, + "detailed_temperature": { + "min": 9.34, + "max": 18.96, + "morning": 10.31, + "day": 15.94, + "evening": 16.76, + "night": 12.56 + }, + "precipitation": { + "probability": 1, + "rain_volume": 2.87, + "snow_volume": 0 + }, + "uv_index": 3.82 + } + }, + { + "day_name": "d2", + "weather_data": { + "condition": "Cloudy", + "description": "broken clouds", + "current_temperature": 15.73, + "detailed_temperature": { + "min": 9.17, + "max": 17.9, + "morning": 10.65, + "day": 15.73, + "evening": 17.14, + "night": 12.34 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 5.16 + } + }, + { + "day_name": "d3", + "weather_data": { + "condition": "Cloudy", + "description": "broken clouds", + "current_temperature": 16.99, + "detailed_temperature": { + "min": 9.47, + "max": 17.69, + "morning": 10.72, + "day": 16.99, + "evening": 16.7, + "night": 14.37 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 5.6 + } + }, + { + "day_name": "d4", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 22.95, + "detailed_temperature": { + "min": 13.23, + "max": 22.95, + "morning": 15.19, + "day": 22.95, + "evening": 20.97, + "night": 17.48 + }, + "precipitation": { + "probability": 0.2, + "rain_volume": 0.15, + "snow_volume": 0 + }, + "uv_index": 5.97 + } + }, + { + "day_name": "d5", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 24.07, + "detailed_temperature": { + "min": 16.06, + "max": 24.85, + "morning": 18.61, + "day": 24.07, + "evening": 21.87, + "night": 17.92 + }, + "precipitation": { + "probability": 0.2, + "rain_volume": 0.19, + "snow_volume": 0 + }, + "uv_index": 6 + } + }, + { + "day_name": "d6", + "weather_data": { + "condition": "Cloudy", + "description": "overcast clouds", + "current_temperature": 23.27, + "detailed_temperature": { + "min": 14.73, + "max": 23.27, + "morning": 16.66, + "day": 23.27, + "evening": 22.33, + "night": 18.94 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 6 + } + }, + { + "day_name": "d7", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 25.15, + "detailed_temperature": { + "min": 16.69, + "max": 25.29, + "morning": 19.84, + "day": 25.15, + "evening": 24.47, + "night": 20.54 + }, + "precipitation": { + "probability": 0.87, + "rain_volume": 0.69, + "snow_volume": 0 + }, + "uv_index": 6 + } + } + ] + } + }, + { + "city_data": { + "lat": 48.20835494995117, + "lon": 16.37250328063965, + "city_name": "Vienna" + }, + "weather_data": { + "current_data": { + "condition": "Rainy", + "description": "light intensity shower rain", + "current_temperature": 17.33, + "detailed_temperature": { + "min": 15.84, + "max": 18.96, + "morning": 17.5, + "day": 17.33, + "evening": 16.89, + "night": 17.5 + }, + "precipitation": { + "probability": 1, + "rain_volume": 10.78, + "snow_volume": 0 + }, + "uv_index": 2.63 + }, + "forecast_data": [ + { + "day_name": "d0", + "weather_data": { + "condition": "SunnyRainy", + "description": "moderate rain", + "current_temperature": 17.74, + "detailed_temperature": { + "min": 15.84, + "max": 18.96, + "morning": 17.5, + "day": 17.74, + "evening": 16.89, + "night": 17.5 + }, + "precipitation": { + "probability": 1, + "rain_volume": 10.78, + "snow_volume": 0 + }, + "uv_index": 2.63 + } + }, + { + "day_name": "d1", + "weather_data": { + "condition": "Cloudy", + "description": "overcast clouds", + "current_temperature": 18.14, + "detailed_temperature": { + "min": 15.06, + "max": 20.2, + "morning": 15.76, + "day": 18.14, + "evening": 19.76, + "night": 16.07 + }, + "precipitation": { + "probability": 0.11, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 4.81 + } + }, + { + "day_name": "d2", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 12.23, + "detailed_temperature": { + "min": 12.08, + "max": 15.59, + "morning": 13.42, + "day": 12.23, + "evening": 13.86, + "night": 12.08 + }, + "precipitation": { + "probability": 1, + "rain_volume": 1.82, + "snow_volume": 0 + }, + "uv_index": 0.78 + } + }, + { + "day_name": "d3", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 18.83, + "detailed_temperature": { + "min": 11.93, + "max": 20.12, + "morning": 12.56, + "day": 18.83, + "evening": 19.76, + "night": 14.12 + }, + "precipitation": { + "probability": 1, + "rain_volume": 1.05, + "snow_volume": 0 + }, + "uv_index": 2.35 + } + }, + { + "day_name": "d4", + "weather_data": { + "condition": "MostlyCloudy", + "description": "scattered clouds", + "current_temperature": 21.13, + "detailed_temperature": { + "min": 11.73, + "max": 23.26, + "morning": 11.73, + "day": 21.13, + "evening": 23.24, + "night": 17.1 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 6.17 + } + }, + { + "day_name": "d5", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 23.55, + "detailed_temperature": { + "min": 14.71, + "max": 26, + "morning": 14.71, + "day": 23.55, + "evening": 25.7, + "night": 20.03 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 7 + } + }, + { + "day_name": "d6", + "weather_data": { + "condition": "SunnyRainy", + "description": "light rain", + "current_temperature": 21.59, + "detailed_temperature": { + "min": 16.28, + "max": 23.22, + "morning": 16.28, + "day": 21.59, + "evening": 22.76, + "night": 17.24 + }, + "precipitation": { + "probability": 0.38, + "rain_volume": 0.27, + "snow_volume": 0 + }, + "uv_index": 7 + } + }, + { + "day_name": "d7", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 24.89, + "detailed_temperature": { + "min": 14.89, + "max": 27.33, + "morning": 14.89, + "day": 24.89, + "evening": 27.33, + "night": 23.1 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 7 + } + } + ] + } + }, + { + "city_data": { + "lat": 25.774173736572266, + "lon": -80.19361877441406, + "city_name": "Miami" + }, + "weather_data": { + "current_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 20.14, + "detailed_temperature": { + "min": 20.14, + "max": 30.88, + "morning": 20.83, + "day": 30.88, + "evening": 26.41, + "night": 23.2 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 11.85 + }, + "forecast_data": [ + { + "day_name": "d0", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 30.88, + "detailed_temperature": { + "min": 20.14, + "max": 30.88, + "morning": 20.83, + "day": 30.88, + "evening": 26.41, + "night": 23.2 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 11.85 + } + }, + { + "day_name": "d1", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 28.94, + "detailed_temperature": { + "min": 21.56, + "max": 29.68, + "morning": 21.61, + "day": 28.94, + "evening": 26.24, + "night": 23.22 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 11.62 + } + }, + { + "day_name": "d2", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 29.32, + "detailed_temperature": { + "min": 21.09, + "max": 31.17, + "morning": 21.09, + "day": 29.32, + "evening": 26.99, + "night": 23.65 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 11.67 + } + }, + { + "day_name": "d3", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 27.11, + "detailed_temperature": { + "min": 21.26, + "max": 30.37, + "morning": 21.26, + "day": 27.11, + "evening": 28.03, + "night": 22.17 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 11.53 + } + }, + { + "day_name": "d4", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 25.7, + "detailed_temperature": { + "min": 19.67, + "max": 28.59, + "morning": 19.67, + "day": 25.7, + "evening": 27.08, + "night": 20.91 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 12 + } + }, + { + "day_name": "d5", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 25.27, + "detailed_temperature": { + "min": 18.6, + "max": 27.95, + "morning": 18.6, + "day": 25.27, + "evening": 25.42, + "night": 20 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 12 + } + }, + { + "day_name": "d6", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 26.84, + "detailed_temperature": { + "min": 19.13, + "max": 28.99, + "morning": 19.13, + "day": 26.84, + "evening": 27.56, + "night": 21.58 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 12 + } + }, + { + "day_name": "d7", + "weather_data": { + "condition": "Sunny", + "description": "clear sky", + "current_temperature": 28.99, + "detailed_temperature": { + "min": 20.87, + "max": 30.64, + "morning": 20.87, + "day": 28.99, + "evening": 29.22, + "night": 22.64 + }, + "precipitation": { + "probability": 0, + "rain_volume": 0, + "snow_volume": 0 + }, + "uv_index": 12 + } + } + ] + } + } +] diff --git a/src/weather/dummyweathercontroller.rs b/src/weather/dummyweathercontroller.rs new file mode 100644 index 0000000..95a5726 --- /dev/null +++ b/src/weather/dummyweathercontroller.rs @@ -0,0 +1,92 @@ +use chrono::{Duration, Utc}; + +use crate::weather::utils::*; +use crate::weather::weathercontroller::{ + CityData, CityWeatherData, GeoLocationData, WeatherController, +}; + +pub struct DummyWeatherController { + city_weather_data: Vec, +} + +impl DummyWeatherController { + pub fn new() -> Self { + Self { + city_weather_data: vec![], + } + } + + fn generate_dummy_data() -> Vec { + let json_data = std::include_str!("./dummyweather.json"); + + match serde_json::from_str::>(json_data) { + Ok(weather_data) => { + // fix day names + let mut weather_data = weather_data.clone(); + for city_data in &mut weather_data { + let forecast_data = &mut (city_data.weather_data.forecast_data); + for (index, data) in forecast_data.iter_mut().enumerate() { + if index == 0 { + data.day_name = "Today".into(); + } else { + data.day_name = + get_day_from_datetime(Utc::now() + Duration::days(index as i64)); + } + } + } + + return weather_data; + } + Err(e) => { + log::warn!("Cannot read dummy weather data! Error: {}", e); + } + } + + vec![] + } +} + +impl WeatherController for DummyWeatherController { + fn load(&mut self) -> Result<(), Box> { + self.city_weather_data = Self::generate_dummy_data(); + Ok(()) + } + + fn save(&self) -> Result<(), Box> { + Ok(()) + } + + fn refresh_cities(&mut self) -> Result, Box> { + Ok(self.city_weather_data.clone()) + } + + fn add_city( + &mut self, + _city: CityData, + ) -> Result, Box> { + // not supported for the dummy data + unimplemented!(); + } + + fn reorder_cities( + &mut self, + index: usize, + new_index: usize, + ) -> Result<(), Box> { + self.city_weather_data.swap(index, new_index); + Ok(()) + } + + fn remove_city(&mut self, index: usize) -> Result<(), Box> { + self.city_weather_data.remove(index); + Ok(()) + } + + fn search_location( + &self, + _query: String, + ) -> Result, Box> { + // not supported for the dummy data + unimplemented!(); + } +} diff --git a/src/weather/mod.rs b/src/weather/mod.rs new file mode 100644 index 0000000..6a9cd8c --- /dev/null +++ b/src/weather/mod.rs @@ -0,0 +1,18 @@ +mod weathercontroller; +mod weatherdisplaycontroller; + +mod dummyweathercontroller; + +pub use weathercontroller::WeatherControllerPointer; +pub use weathercontroller::WeatherControllerSharedPointer; +pub use weatherdisplaycontroller::WeatherDisplayController; + +pub use dummyweathercontroller::DummyWeatherController; + +#[cfg(all(not(target_arch = "wasm32"), feature = "open_weather"))] +mod openweathercontroller; + +#[cfg(all(not(target_arch = "wasm32"), feature = "open_weather"))] +pub use openweathercontroller::OpenWeatherController; + +pub mod utils; diff --git a/src/weather/openweathercontroller.rs b/src/weather/openweathercontroller.rs new file mode 100644 index 0000000..ef8f255 --- /dev/null +++ b/src/weather/openweathercontroller.rs @@ -0,0 +1,453 @@ +#![cfg(all(not(target_arch = "wasm32"), feature = "open_weather"))] + +use chrono::DateTime; +use openweather_sdk::responses::{GeocodingResponse, OneCallResponse}; +use openweather_sdk::{Language, OpenWeather, Units}; +use serde::{Deserialize, Serialize}; +use std::fs::File; +use std::io; +use std::io::{BufReader, BufWriter, Write}; +use std::ops::Deref; +use std::path::PathBuf; +use std::sync::Arc; +use std::vec; +use tokio::sync::Mutex; + +use crate::weather::utils::*; +use crate::weather::weathercontroller::{ + CityData, CityWeatherData, DayWeatherData, ForecastWeatherData, GeoLocationData, + PrecipitationData, TemperatureData, WeatherCondition, WeatherController, WeatherData, +}; + +#[cfg(target_os = "android")] +use std::env; + +const CITIES_STORED_FILE_NAME: &str = "cities_data.json"; +const ORGANIZATION_QUALIFIER: &str = "com"; // have to match android app name in cargo.toml +const ORGANIZATION_NAME: &str = "felgo.demos"; // have to match android app name in cargo.toml +const APPLICATION_NAME: &str = "rustyweather"; // have to match app android name in cargo.toml + +fn project_data_dir() -> Option { + #[cfg(target_os = "android")] + { + match env::var("ANDROID_DATA") { + Ok(data_root) => { + if data_root.is_empty() { + return None; + } else { + let project_name = format!( + "{}.{}.{}", + ORGANIZATION_QUALIFIER, ORGANIZATION_NAME, APPLICATION_NAME + ); + return Some(PathBuf::from(format!( + "{}/data/{}/files", + data_root, project_name + ))); + } + } + Err(_e) => { + log::warn!("Cannot read ANDROID_DATA, persistence not avaialble."); + return None; + } + } + } + + #[cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))] + { + if let Some(project_dir) = directories::ProjectDirs::from( + ORGANIZATION_QUALIFIER, + ORGANIZATION_NAME, + APPLICATION_NAME, + ) { + return Some(project_dir.data_dir().to_path_buf()); + }; + + None + } +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct WeatherClient { + pub city_data: CityData, + pub weather_data: Option, +} + +pub struct OpenWeatherController { + tokio_runtime: tokio::runtime::Runtime, + weather_api: OpenWeather, + city_clients: Arc>>, + storage_path: Option, +} + +impl OpenWeatherController { + pub fn new(api_key: String) -> Self { + let mut weather_api = OpenWeather::new(api_key, Units::Metric, Language::English); + weather_api.one_call.fields.minutely = false; + weather_api.one_call.fields.hourly = false; + weather_api.one_call.fields.alerts = false; + + let storage_path; + if let Some(project_dir) = project_data_dir() { + storage_path = Some(project_dir.as_path().join(CITIES_STORED_FILE_NAME)); + } else { + storage_path = None; + log::error!("Failed to initialize project dir. Persistent data will not be loaded"); + } + + Self { + tokio_runtime: tokio::runtime::Runtime::new().unwrap(), + weather_api, + city_clients: Arc::new(Mutex::new(vec![])), + storage_path, + } + } + + fn weather_condition_from_icon_icon_type(icon_type: &str) -> WeatherCondition { + match icon_type { + "01d" | "01n" => WeatherCondition::Sunny, + "02d" | "02n" => WeatherCondition::PartiallyCloudy, + "03d" | "03n" => WeatherCondition::MostlyCloudy, + "04d" | "04n" => WeatherCondition::Cloudy, + "10d" | "10n" => WeatherCondition::SunnyRainy, + "09d" | "09n" => WeatherCondition::Rainy, + "11d" | "11n" => WeatherCondition::Stormy, + "13d" | "13n" => WeatherCondition::Snowy, + "50d" | "50n" => WeatherCondition::Foggy, + _ => WeatherCondition::Unknown, + } + } + + fn current_day_weather_data_from_response( + weather_response: &Option, + ) -> DayWeatherData { + if let Some(weather_data) = weather_response { + if let Some(current) = &weather_data.current { + let weather_details = ¤t.weather[0]; + let today_weather_info = + weather_data.daily.as_ref().and_then(|daily| daily.first()); + + let detailed_temp = match today_weather_info { + Some(info) => { + let temp = info.temp; + TemperatureData { + min: temp.min, + max: temp.max, + + morning: temp.morn, + day: temp.day, + evening: temp.eve, + night: temp.night, + } + } + None => TemperatureData { + min: current.temp, + max: current.temp, + + morning: current.temp, + day: current.temp, + evening: current.temp, + night: current.temp, + }, + }; + + return DayWeatherData { + description: weather_details.description.clone(), + condition: Self::weather_condition_from_icon_icon_type(&weather_details.icon), + current_temperature: current.temp, + detailed_temperature: detailed_temp, + precipitation: PrecipitationData::default(), + uv_index: 0.0, + }; + } + } + + DayWeatherData::default() + } + + fn forecast_day_weather_data_from_response( + weather_response: &Option, + ) -> Vec { + let mut forecast_weather_info: Vec = vec![]; + + if let Some(weather_data) = weather_response { + if let Some(daily_weather_data) = &weather_data.daily { + for day_weather_data in daily_weather_data.iter() { + if let Some(datetime) = DateTime::from_timestamp(day_weather_data.datetime, 0) { + let weather_details = &day_weather_data.weather[0]; + + let detailed_temperature = TemperatureData { + min: day_weather_data.temp.min, + max: day_weather_data.temp.max, + + morning: day_weather_data.temp.morn, + day: day_weather_data.temp.day, + evening: day_weather_data.temp.eve, + night: day_weather_data.temp.night, + }; + + let precipitation: PrecipitationData = PrecipitationData { + probability: day_weather_data.pop, + rain_volume: day_weather_data.rain.unwrap_or(0 as f64), + snow_volume: day_weather_data.snow.unwrap_or(0 as f64), + }; + + let day_weather_info = DayWeatherData { + description: weather_details.description.clone(), + condition: Self::weather_condition_from_icon_icon_type( + &weather_details.icon, + ), + current_temperature: day_weather_data.temp.day, + detailed_temperature, + precipitation, + uv_index: day_weather_data.uvi, + }; + + // TODO: localization + forecast_weather_info.push(ForecastWeatherData { + day_name: get_day_from_datetime(datetime), + weather_data: day_weather_info, + }); + } + } + } + } + + forecast_weather_info + } + + fn city_weather_data_from_client(city_client: &WeatherClient) -> CityWeatherData { + let current_data = Self::current_day_weather_data_from_response(&city_client.weather_data); + let forecast_data = + Self::forecast_day_weather_data_from_response(&city_client.weather_data); + + CityWeatherData { + city_data: city_client.city_data.clone(), + weather_data: WeatherData { + current_data, + forecast_data, + }, + } + } + + fn geo_location_data_from_response(response: &GeocodingResponse) -> GeoLocationData { + GeoLocationData { + name: response.name.clone(), + state: response.state.clone(), + country: response.country.clone(), + lat: response.lat, + lon: response.lon, + } + } +} + +impl WeatherController for OpenWeatherController { + fn load(&mut self) -> Result<(), Box> { + if let Some(storage_path) = &self.storage_path { + log::debug!("Loading data from: {:?}", storage_path.to_str()); + + let file = File::open(storage_path.as_path())?; + let reader = BufReader::new(file); + + let city_clients_data: Vec = serde_json::from_reader(reader)?; + log::debug!("Successfully loaded {} cities", city_clients_data.len()); + + let city_clients = self.city_clients.clone(); + self.tokio_runtime.block_on(async move { + let mut city_clients = city_clients.lock().await; + *city_clients = city_clients_data; + Ok(()) + }) + } else { + Err(Box::new(io::Error::new( + io::ErrorKind::NotFound, + "Storage path not initialized", + ))) + } + } + + fn save(&self) -> Result<(), Box> { + if let Some(storage_path) = &self.storage_path { + log::debug!("Saving data to: {:?}", storage_path.to_str()); + + // Ensure the parent directories exist + if let Some(parent_dir) = storage_path.parent() { + std::fs::create_dir_all(parent_dir)?; + } + + let file = File::create(storage_path)?; + let mut writer = BufWriter::new(file); + let city_clients = self.city_clients.clone(); + + self.tokio_runtime.block_on(async move { + let city_clients = city_clients.lock().await; + serde_json::to_writer(&mut writer, city_clients.deref())?; + writer.flush()?; + + Ok(()) + }) + } else { + Err(Box::new(io::Error::new( + io::ErrorKind::NotFound, + "Storage path not initialized", + ))) + } + } + + fn refresh_cities(&mut self) -> Result, Box> { + log::debug!("Refreshing all the clients!"); + + let city_clients_clone = self.city_clients.clone(); + let weather_api = self.weather_api.clone(); + + self.tokio_runtime.block_on(async move { + let mut city_clients = city_clients_clone.lock().await; + + let mut errors = vec![]; + for client in city_clients.iter_mut() { + // TODO: Spawn all tasks at once and join them later. + if let Err(e) = client.refresh_weather(&weather_api).await { + errors.push(e); + } + } + log::debug!("Refreshing weather finished!"); + + if !errors.is_empty() && errors.len() == city_clients.len() { + return Err(errors.pop().unwrap()); + } + Ok(city_clients + .iter() + .map(Self::city_weather_data_from_client) + .collect()) + }) + } + + fn add_city( + &mut self, + city: CityData, + ) -> Result, Box> { + log::debug!("Adding new city: {city:?}"); + let city_clients_clone = self.city_clients.clone(); + let weather_api = self.weather_api.clone(); + + self.tokio_runtime.block_on(async move { + let mut city_clients = city_clients_clone.lock().await; + match city_clients + .iter() + .position(|client| client.city_data == city) + { + Some(_) => { + log::info!("City already present in list!"); + Ok(None) + } + None => { + // Add to list and refresh + let mut client = WeatherClient::new(city.lat, city.lon, &city.city_name); + client.refresh_weather(&weather_api).await?; + let city_weather_data = Self::city_weather_data_from_client(&client); + city_clients.push(client); + Ok(Some(city_weather_data)) + } + } + }) + } + + fn reorder_cities( + &mut self, + index: usize, + new_index: usize, + ) -> Result<(), Box> { + let city_clients = self.city_clients.clone(); + self.tokio_runtime.block_on(async move { + let mut city_clients = city_clients.lock().await; + city_clients.swap(index, new_index); + }); + Ok(()) + } + + fn remove_city(&mut self, index: usize) -> Result<(), Box> { + let city_clients = self.city_clients.clone(); + self.tokio_runtime.block_on(async move { + let mut city_clients = city_clients.lock().await; + city_clients.remove(index); + }); + Ok(()) + } + + fn search_location( + &self, + query: String, + ) -> Result, Box> { + log::debug!("Searching for: {query}"); + let weather_api = self.weather_api.clone(); + + if query.is_empty() { + return Ok(vec![]); + } + + self.tokio_runtime.block_on(async move { + let response_data = weather_api + .geocoding + .get_geocoding(&query, None, None, 0) + .await?; + + log::debug!("Search result: {response_data:?}"); + + let mut unique_response_data: Vec = Vec::new(); + for element in response_data { + if !unique_response_data.iter().any(|existing_element| { + if existing_element.name == element.name + && existing_element.country == element.country + && existing_element.state == element.state + { + return true; + } + false + }) { + unique_response_data.push(element); + } + } + + Ok(unique_response_data + .iter() + .map(Self::geo_location_data_from_response) + .collect()) + }) + } +} + +impl WeatherClient { + pub fn new(lat: f64, lon: f64, cname: &str) -> Self { + Self { + city_data: CityData { + lat, + lon, + city_name: cname.to_string(), + }, + weather_data: None, + } + } + + pub async fn refresh_weather( + &mut self, + weather_api: &OpenWeather, + ) -> Result<(), Box> { + let res = weather_api + .one_call + .call(self.city_data.lat, self.city_data.lon) + .await; + log::debug!("Weather response: {res:?}"); + + match res { + Ok(response_data) => { + self.weather_data = Some(response_data); + log::debug!( + "Response received at: {:?}", + chrono::offset::Local::now().timestamp() + ); + + Ok(()) + } + Err(e) => Err(e), + } + } +} diff --git a/src/weather/utils.rs b/src/weather/utils.rs new file mode 100644 index 0000000..2ab7fb9 --- /dev/null +++ b/src/weather/utils.rs @@ -0,0 +1,9 @@ +use chrono::{DateTime, Datelike}; + +pub fn get_day_from_datetime(date: DateTime) -> String { + if date.day() == chrono::offset::Local::now().day() { + // TODO: translations + return "Today".to_string(); + } + date.weekday().to_string() +} diff --git a/src/weather/weathercontroller.rs b/src/weather/weathercontroller.rs new file mode 100644 index 0000000..b51d4c9 --- /dev/null +++ b/src/weather/weathercontroller.rs @@ -0,0 +1,112 @@ +use serde::{Deserialize, Serialize}; +use std::sync::{Arc, Mutex}; + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CityData { + pub lat: f64, + pub lon: f64, + pub city_name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)] +pub enum WeatherCondition { + #[default] + Unknown, + Sunny, + PartiallyCloudy, + MostlyCloudy, + Cloudy, + SunnyRainy, + Rainy, + Stormy, + Snowy, + Foggy, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)] +pub struct TemperatureData { + pub min: f64, + pub max: f64, + pub morning: f64, + pub day: f64, + pub evening: f64, + pub night: f64, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)] +pub struct PrecipitationData { + pub probability: f64, + pub rain_volume: f64, + pub snow_volume: f64, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)] +pub struct DayWeatherData { + pub condition: WeatherCondition, + pub description: String, + + pub current_temperature: f64, + pub detailed_temperature: TemperatureData, + + pub precipitation: PrecipitationData, + pub uv_index: f64, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)] +pub struct ForecastWeatherData { + pub day_name: String, + pub weather_data: DayWeatherData, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct WeatherData { + pub current_data: DayWeatherData, + pub forecast_data: Vec, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct CityWeatherData { + pub city_data: CityData, + pub weather_data: WeatherData, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct GeoLocationData { + pub name: String, + pub lat: f64, + pub lon: f64, + pub country: String, + pub state: Option, +} + +#[cfg(not(target_arch = "wasm32"))] +pub type WeatherControllerPointer = Box; +#[cfg(target_arch = "wasm32")] +pub type WeatherControllerPointer = Box; + +pub type WeatherControllerSharedPointer = Arc>; + +pub trait WeatherController { + fn load(&mut self) -> Result<(), Box>; + fn save(&self) -> Result<(), Box>; + + fn refresh_cities(&mut self) -> Result, Box>; + + fn add_city( + &mut self, + city: CityData, + ) -> Result, Box>; + + fn reorder_cities( + &mut self, + index: usize, + new_index: usize, + ) -> Result<(), Box>; + + fn remove_city(&mut self, index: usize) -> Result<(), Box>; + + fn search_location( + &self, + query: String, + ) -> Result, Box>; +} diff --git a/src/weather/weatherdisplaycontroller.rs b/src/weather/weatherdisplaycontroller.rs new file mode 100644 index 0000000..de7e66e --- /dev/null +++ b/src/weather/weatherdisplaycontroller.rs @@ -0,0 +1,489 @@ +use slint::{ComponentHandle, Model, ModelRc, SharedString, VecModel, Weak}; +use std::rc::Rc; + +use crate::ui; +use ui::{ + AppWindow, BusyLayerController, CityWeather, CityWeatherInfo, GeoLocation, GeoLocationEntry, + IconType, TemperatureInfo, WeatherForecastInfo, WeatherInfo, +}; + +use crate::weather::weathercontroller::{ + CityData, CityWeatherData, DayWeatherData, ForecastWeatherData, GeoLocationData, + WeatherCondition, WeatherControllerSharedPointer, +}; + +#[cfg(not(target_arch = "wasm32"))] +use async_std::task::spawn as spawn_task; + +#[cfg(target_arch = "wasm32")] +use wasm_bindgen_futures::spawn_local as spawn_task; + +pub struct WeatherDisplayController { + data_controller: WeatherControllerSharedPointer, +} + +fn forecast_graph_command( + model: ModelRc, + days_count: i32, + width: f32, + height: f32, +) -> SharedString { + if days_count == 0 || width == 0.0 || height == 0.0 { + return SharedString::new(); + } + + let temperatures: Vec = model + .clone() + .iter() + .take(days_count as usize) + .map(|info| info.weather_info.detailed_temp.day) + .collect(); + + const MIN_MAX_MARGIN: f32 = 5.0; + let min_temperature = match temperatures.iter().min_by(|a, b| a.total_cmp(b)) { + Some(min) => min - MIN_MAX_MARGIN, + None => 0.0, + }; + let max_temperature = match temperatures.iter().max_by(|a, b| a.total_cmp(b)) { + Some(max) => max + MIN_MAX_MARGIN, + None => 50.0, + }; + + let max_temperature_value = max_temperature - min_temperature; + let temperature_ratio = height / max_temperature_value; + + let day_width = width / days_count as f32; + let max_day_shift = days_count as f32 * day_width; + + let border_command = + format!( + "M 0 0 M {max_width} 0 M {max_width} {max_temperature_value} M 0 {max_temperature_value} ", + max_width=max_day_shift, max_temperature_value=max_temperature_value * temperature_ratio); + + let mut command = border_command; + + let day_shift = |index: f32| -> f32 { index * day_width + 0.5 * day_width }; + let day_temperature = + |temperature: f32| -> f32 { (max_temperature - temperature) * temperature_ratio }; + + for (index, &temperature) in temperatures.iter().enumerate() { + if index == 0 { + command += format!( + "M {x} {y} ", + x = day_shift(index as f32), + y = day_temperature(temperature) + ) + .as_str(); + } + + if let Some(next_temperature) = temperatures.get(index + 1) { + let next_temperature = *next_temperature; + + let day1 = day_shift(index as f32); + let day2 = day_shift(index as f32 + 1.0); + let temp1 = day_temperature(temperature); + let temp2 = day_temperature(next_temperature); + + let day_mid = (day1 + day2) / 2.0; + let temp_mid = (temp1 + temp2) / 2.0; + + let cp_day1 = (day_mid + day1) / 2.0; + let cp_day2 = (day_mid + day2) / 2.0; + + command += format!( + "Q {x1} {y1} {cx1} {cy1} Q {x2} {y2} {cx2} {cy2} ", + x1 = cp_day1, + y1 = temp1, + cx1 = day_mid, + cy1 = temp_mid, + x2 = cp_day2, + y2 = temp2, + cx2 = day2, + cy2 = temp2 + ) + .as_str(); + } + } + + SharedString::from(command) +} + +impl WeatherDisplayController { + pub fn new(data_controller: &WeatherControllerSharedPointer) -> Self { + Self { + data_controller: data_controller.clone(), + } + } + + pub fn initialize_ui(&self, window: &AppWindow, support_add_city: bool) { + let city_weather = window.global::(); + let geo_location = window.global::(); + + // initialized models + city_weather.set_city_weather(ModelRc::from(Rc::new(VecModel::::from( + vec![], + )))); + geo_location.set_result_list(ModelRc::from(Rc::new(VecModel::::from( + vec![], + )))); + + // initialize state + city_weather.set_can_add_city(support_add_city); + + // handle callbacks + city_weather.on_get_forecast_graph_command(forecast_graph_command); + + city_weather.on_refresh_all({ + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + move || Self::refresh_cities(&window_weak, &data_controller) + }); + + city_weather.on_reorder({ + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + move |index, new_index| { + if let Err(e) = + Self::reorder_cities(&window_weak, &data_controller, index, new_index) + { + log::warn!( + "Failed to reorder city from {} to {}: {}", + index, + new_index, + e + ); + } + } + }); + + city_weather.on_delete({ + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + move |index| { + if let Err(e) = Self::remove_city(&window_weak, &data_controller, index) { + log::warn!("Failed to remove city from {}: {}", index, e); + } + } + }); + + geo_location.on_search_location({ + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + move |location| Self::search_location(&window_weak, &data_controller, location) + }); + + geo_location.on_add_location({ + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + move |location| { + Self::add_city(&window_weak, &data_controller, location); + } + }); + } + + #[cfg_attr(not(target_os = "android"), allow(dead_code))] + pub fn refresh(&self, window: &AppWindow) { + Self::set_busy(window); + + let window_weak = window.as_weak(); + Self::refresh_cities(&window_weak, &self.data_controller); + } + + pub fn load(&self, window: &AppWindow) { + Self::set_busy(window); + + let window_weak = window.as_weak(); + let data_controller = self.data_controller.clone(); + + spawn_task(async move { + let city_data_res = async { + let mut data_controller = data_controller.lock().unwrap(); + data_controller.load()?; + data_controller.refresh_cities() + } + .await; + + let city_data = match city_data_res { + Ok(city_data) => Some(city_data), + Err(e) => { + log::warn!("Failed to load cities: {}.", e); + None + } + }; + + Self::check_update_error(window_weak.upgrade_in_event_loop(move |window| { + if let Some(city_data) = city_data { + WeatherDisplayController::update_displayed_cities(&window, city_data); + } + Self::unset_busy(&window); + })); + }); + } + + fn refresh_cities( + window_weak: &Weak, + data_controller: &WeatherControllerSharedPointer, + ) { + let window_weak = window_weak.clone(); + let data_controller = data_controller.clone(); + + spawn_task(async move { + let city_data_res = async { data_controller.lock().unwrap().refresh_cities() }.await; + + let city_data = match city_data_res { + Ok(city_data) => Some(city_data), + Err(e) => { + log::warn!("Failed to update cities: {}.", e); + None + } + }; + + Self::check_update_error(window_weak.upgrade_in_event_loop(move |window| { + if let Some(city_data) = city_data { + WeatherDisplayController::update_displayed_cities(&window, city_data); + } + Self::unset_busy(&window); + })); + }); + } + + fn add_city( + window_weak: &Weak, + data_controller: &WeatherControllerSharedPointer, + location: GeoLocationEntry, + ) { + let city = CityData { + lat: location.lat as f64, + lon: location.lon as f64, + city_name: String::from(&location.name), + }; + let city_data_res = data_controller.lock().unwrap().add_city(city); + + // update ui + let window = window_weak.upgrade().unwrap(); + match city_data_res { + Ok(city_data) => { + if let Some(city_data) = city_data { + let city_weather = window.global::(); + let city_weather_list = city_weather.get_city_weather(); + + let city_weather = Self::city_weather_info_from_data(&city_data); + city_weather_list + .as_any() + .downcast_ref::>() + .unwrap() + .push(city_weather); + } + } + Err(e) => { + log::warn!("Failed to add city: {}.", e); + } + } + + Self::unset_busy(&window); + } + + fn reorder_cities( + window_weak: &Weak, + data_controller: &WeatherControllerSharedPointer, + index: i32, + new_index: i32, + ) -> Result<(), Box> { + let pos: usize = index.try_into()?; + let new_pos: usize = new_index.try_into()?; + + data_controller + .lock() + .unwrap() + .reorder_cities(pos, new_pos)?; + + // update ui + let window = window_weak.upgrade().unwrap(); + let city_weather = window.global::(); + let city_weather_list = city_weather.get_city_weather(); + + let pos_data = city_weather_list + .row_data(pos) + .ok_or(Box::new(std::io::Error::new( + std::io::ErrorKind::InvalidInput, + "Index out of bounds", + )))?; + let new_pos_data = + city_weather_list + .row_data(new_pos) + .ok_or(Box::new(std::io::Error::new( + std::io::ErrorKind::InvalidInput, + "Index out of bounds", + )))?; + + city_weather_list.set_row_data(pos, new_pos_data); + city_weather_list.set_row_data(new_pos, pos_data); + Ok(()) + } + + fn remove_city( + window_weak: &Weak, + data_controller: &WeatherControllerSharedPointer, + index: i32, + ) -> Result<(), Box> { + let pos: usize = index.try_into()?; + + data_controller.lock().unwrap().remove_city(pos)?; + + // update ui + let window = window_weak.upgrade().unwrap(); + let city_weather = window.global::(); + let city_weather_list = city_weather.get_city_weather(); + + let model = city_weather_list + .as_any() + .downcast_ref::>() + .expect("CityWeatherInfo model is not provided!"); + + model.remove(pos); + Ok(()) + } + + fn search_location( + window_weak: &Weak, + data_controller: &WeatherControllerSharedPointer, + query: slint::SharedString, + ) { + let window_weak = window_weak.clone(); + let data_controller = data_controller.clone(); + let query = query.to_string(); + + spawn_task(async move { + let locations_res = + async { data_controller.lock().unwrap().search_location(query) }.await; + + let locations = match locations_res { + Ok(locations) => Some(locations), + Err(e) => { + log::warn!("Failed to search for location: {}.", e); + None + } + }; + + Self::check_update_error(window_weak.upgrade_in_event_loop(move |window| { + if let Some(locations) = locations { + WeatherDisplayController::update_location_search_results(&window, locations); + } + })); + }); + } + + fn update_displayed_cities(window: &AppWindow, data: Vec) { + let display_vector: Vec = + data.iter().map(Self::city_weather_info_from_data).collect(); + + let city_weather = window.global::().get_city_weather(); + let model = city_weather + .as_any() + .downcast_ref::>() + .expect("City weather model not set."); + + model.set_vec(display_vector); + } + + fn update_location_search_results(window: &AppWindow, result: Vec) { + let display_vector: Vec = result + .iter() + .map(Self::geo_location_entry_from_data) + .collect(); + + let geo_location = window.global::().get_result_list(); + let model = geo_location + .as_any() + .downcast_ref::>() + .expect("Geo location entry model not set."); + + model.set_vec(display_vector); + } + + fn set_busy(window: &AppWindow) { + window.global::().invoke_set_busy(); + } + + fn unset_busy(window: &AppWindow) { + window.global::().invoke_unset_busy(); + } + + fn check_update_error(result: Result<(), E>) { + if let Err(e) = result { + log::error!("Error while updating UI: {}", e); + } + } + + fn icon_type_from_condition(condition: &WeatherCondition) -> IconType { + match condition { + WeatherCondition::Sunny => IconType::Sunny, + WeatherCondition::PartiallyCloudy => IconType::PartiallyCloudy, + WeatherCondition::MostlyCloudy => IconType::MostlyCloudy, + WeatherCondition::Cloudy => IconType::Cloudy, + WeatherCondition::SunnyRainy => IconType::SunnyRainy, + WeatherCondition::Rainy => IconType::Rainy, + WeatherCondition::Stormy => IconType::Stormy, + WeatherCondition::Snowy => IconType::Snowy, + WeatherCondition::Foggy => IconType::Foggy, + _ => IconType::Unknown, + } + } + + fn weather_info_from_data(data: &DayWeatherData) -> WeatherInfo { + WeatherInfo { + description: SharedString::from(&data.description), + icon_type: Self::icon_type_from_condition(&data.condition), + current_temp: data.current_temperature as f32, + detailed_temp: TemperatureInfo { + min: data.detailed_temperature.min as f32, + max: data.detailed_temperature.max as f32, + + morning: data.detailed_temperature.morning as f32, + day: data.detailed_temperature.day as f32, + evening: data.detailed_temperature.evening as f32, + night: data.detailed_temperature.night as f32, + }, + uv: data.uv_index as i32, + precipitation_prob: data.precipitation.probability as f32, + rain: data.precipitation.rain_volume as f32, + snow: data.precipitation.snow_volume as f32, + } + } + + fn forecast_weather_info_from_data(data: &[ForecastWeatherData]) -> Vec { + data.iter() + .map(|forecast_data| WeatherForecastInfo { + day_name: SharedString::from(&forecast_data.day_name), + weather_info: Self::weather_info_from_data(&forecast_data.weather_data), + }) + .collect() + } + + fn city_weather_info_from_data(data: &CityWeatherData) -> CityWeatherInfo { + let current_weather_info = Self::weather_info_from_data(&data.weather_data.current_data); + let forecast_weather_info = + Self::forecast_weather_info_from_data(&data.weather_data.forecast_data); + + CityWeatherInfo { + city_name: SharedString::from(&data.city_data.city_name), + current_weather: current_weather_info, + forecast_weather: Rc::new(slint::VecModel::from(forecast_weather_info)).into(), + } + } + + fn geo_location_entry_from_data(data: &GeoLocationData) -> GeoLocationEntry { + GeoLocationEntry { + name: SharedString::from(&data.name), + state: SharedString::from(data.state.as_deref().unwrap_or_default()), + country: SharedString::from(&data.country), + lat: data.lat as f32, + lon: data.lon as f32, + } + } +} diff --git a/ui/about-box.slint b/ui/about-box.slint new file mode 100644 index 0000000..64488ee --- /dev/null +++ b/ui/about-box.slint @@ -0,0 +1,87 @@ +import { WindowInfo } from "./ui_utils.slint"; +import { AppText } from "./controls/generic.slint"; +import { AboutSlint } from "std-widgets.slint"; + +component AboutFelgo { + width: 100%; + height: 100%; + + VerticalLayout { + spacing: 5px; + + width: 90% * parent.width; + padding-bottom: 14px; + + Rectangle { + background: white; + border-radius: self.height / 2; + + preferred-height: self.width * 45%; + + logo-layout := VerticalLayout { + alignment: center; + spacing: 2px; + + made-text := AppText { + text: "MADE BY"; + horizontal-alignment: center; + font-size: 1rem; + color: black; + } + + Rectangle { + Image { + image-fit: contain; + width: 70% * parent.width; + source: @image-url("./assets/felgo-logo.svg"); + } + } + } + } + + AppText { + text: "https://felgo.com/"; + horizontal-alignment: center; + } + } +} + +export component AboutBox { + VerticalLayout { + if WindowInfo.is-portrait: VerticalLayout { + alignment: center; + + Rectangle { + AboutFelgo { + width: Math.min(200px, 80% * parent.width); + min-height: self.preferred-height; + } + } + Rectangle { + AboutSlint { + width: Math.min(200px, 80% * parent.width); + min-height: self.preferred-height; + } + } + } + + if !WindowInfo.is-portrait: HorizontalLayout { + alignment: space-around; + + // adjust AboutFelgo size to look the same as AboutSlint + Rectangle { + max-width: 200px; + + AboutFelgo { + height: 84%; + preferred-width: 200px; + padding-bottom: 10px; + } + } + + AboutSlint { + max-width: 200px; + } + } + } +} diff --git a/ui/assets/busy-indicator.png b/ui/assets/busy-indicator.png new file mode 100644 index 0000000000000000000000000000000000000000..c2228a7c11e5f6d7f6d7186ff11fbabb7d33e849 GIT binary patch literal 3723 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 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui/assets/font-awesome.ttf b/ui/assets/font-awesome.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 GIT binary patch literal 165548 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 z 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 d0mg4QxLiD8${$5L7-5|rQDz^ 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%0D#Rj$k_pOl`WL;%6e`2iA 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 C!5iiP literal 0 HcmV?d00001 diff --git a/ui/city_weather.slint b/ui/city_weather.slint new file mode 100644 index 0000000..fea7e73 --- /dev/null +++ b/ui/city_weather.slint @@ -0,0 +1,215 @@ +import { WindowInfo } from "./ui_utils.slint"; +import { PageBase } from "page-base.slint"; +import { CityWeatherTile } from "city_weather_tile.slint"; +import { ExpandedCityWeatherTile } from "expanded_city_weather_tile.slint"; +import { CityWeather, CityWeatherInfo } from "weather_datatypes.slint"; +import { AppPalette, Images } from "./style/styles.slint"; +import { SlideButton } from "./controls/generic.slint"; +import { AboutBox } from "about-box.slint"; + +component CitySlideArea inherits Rectangle { + in property can-move-up: true; + in property can-move-down: true; + + callback opened; + callback closed; + + callback up-clicked; + callback down-clicked; + callback delete-clicked; + callback content-clicked; + + public function open() { + flickable.viewport-x = -buttons-layout.width; + root.opened(); + } + + public function close() { + flickable.viewport-x = 0; + root.closed(); + } + + height: content.preferred-height; + + flickable := Flickable { + width: 100%; + + viewport-width: slide-layout.preferred-width; + viewport-x: 0; + + property last-viewport-x: 0px; + flicked => { + if (self.last-viewport-x > self.viewport-x) { + root.open(); + } + else { + root.close(); + } + } + + slide-layout := HorizontalLayout { + content := Rectangle { + width: root.width; + + Rectangle { + @children + } + + TouchArea { + pointer-event(event) => { + if (event.kind == PointerEventKind.down) { + flickable.last-viewport-x = flickable.viewport-x; + } + } + + clicked => { root.content-clicked(); } + } + } + + buttons-layout := VerticalLayout { + width: 50px; + spacing: 1px; + + SlideButton { + text: "\u{f062}"; + enabled: root.can-move-up; + + clicked => { root.up-clicked(); } + } + SlideButton { + text: "\u{f1f8}"; + background-color: AppPalette.error-red; + + clicked => { root.delete-clicked(); } + } + SlideButton { + text: "\u{f063}"; + enabled: root.can-move-down; + + clicked => { root.down-clicked(); } + } + } + } + } + +} + +component CityWeatherList inherits Flickable { + property opened-index: -1; + + callback expand(int, Point, length, length); + + VerticalLayout { + alignment: start; + padding: 0px; + + for city-weather-info[index] in CityWeather.city-weather: + CitySlideArea { + property is-opened: root.opened-index == index; + + can-move-up: index > 0; + can-move-down: index < CityWeather.city-weather.length - 1; + + changed is-opened => { + if (is-opened) { + self.open(); + } + else { + self.close(); + } + } + + opened => { + root.opened-index = index; + } + + content-clicked => { + root.opened-index = -1; + root.expand(index, self.absolute-position, self.width, self.height); + } + + up-clicked => { + root.opened-index = index - 1; + CityWeather.reorder(index, root.opened-index); + } + down-clicked => { + root.opened-index = index + 1; + CityWeather.reorder(index, root.opened-index); + } + delete-clicked => { + root.opened-index = -1; + CityWeather.delete(index); + self.close(); + } + + CityWeatherTile { + city-weather-info: city-weather-info; + alternative-background: Math.mod(index, 2) == 0; + } + } + + Rectangle { + // spacing + min-height: WindowInfo.is-portrait ? 25px : 10px; + } + AboutBox { + min-height: self.preferred-height; + } + } +} + +struct TileInfo { + index: int, + absolute-position: Point, + size: { width: length, height: length } +} + +export component CityListView inherits PageBase { + property selected-tile; + + CityWeatherList { + padding: 16px; + + expand(index, absolute-position, width, height) => { + root.selected-tile = { + index: index, + absolute-position: absolute-position, + size: { width: width, height: height } + }; + expanded-tile.expand(); + } + } + + PageBase { + opacity: 0.0; + + states [ + visible when expanded-tile.expanded: { + opacity: 1; + + out { + animate opacity { delay: expanded-tile.animation-duration; } + } + } + ] + } + + expanded-tile := ExpandedCityWeatherTile { + city-weather-info: CityWeather.city-weather[root.selected-tile.index]; + alternative-background: Math.mod(root.selected-tile.index, 2) == 0; + + block-x: root.selected-tile.absolute-position.x - root.absolute-position.x; + block-y: root.selected-tile.absolute-position.y - root.absolute-position.y; + block-width: root.selected-tile.size.width; + block-height: root.selected-tile.size.height; + + full-x: 0px; + full-y: 0px; + full-width: parent.width; + full-height: parent.height; + + clicked => { + self.collapse(); + } + } +} diff --git a/ui/city_weather_tile.slint b/ui/city_weather_tile.slint new file mode 100644 index 0000000..c073aba --- /dev/null +++ b/ui/city_weather_tile.slint @@ -0,0 +1,105 @@ +import { WeatherInfo, WeatherForecastInfo, CityWeatherInfo, CityWeather } from "weather_datatypes.slint"; +import { WindowInfo } from "./ui_utils.slint"; +import { AppPalette } from "./style/styles.slint"; +import { AppText } from "./controls/generic.slint"; +import { WeatherIcon } from "./controls/weather.slint"; +import { DayForecastGraph } from "./forecast_with_graph.slint"; + +component TileBaseInfo inherits HorizontalLayout { + in property city-name; + in property current-weather; + + spacing: 15px; + + AppText { + font-size: 2.1rem; + text: root.city-name; + } + + VerticalLayout { + horizontal-stretch: 1; + alignment: start; + + AppText { + min-width: self.preferred-width; + font-size: 1.8rem; + horizontal-alignment: right; + + text: Math.round(root.current-weather.current_temp) + "°"; + } + + AppText { + font-size: 1.2rem; + horizontal-alignment: right; + + text: root.current-weather.description; + wrap: word-wrap; + } + } + + WeatherIcon { + icon-type: root.current-weather.icon-type; + + font-size: 3.5rem; + vertical-alignment: top; + } +} + +export component CityWeatherTile inherits TouchArea { + in property city-weather-info; + in property alternative-background: false; + in property show-animations: true; + + out property city-name: city-weather-info.city-name; + out property current-weather: city-weather-info.current-weather; + out property<[WeatherForecastInfo]> forecast-weather: city-weather-info.forecast-weather; + + preferred-height: layout.preferred-height; + + Rectangle { + background: root.alternative-background ? white.with-alpha(2.5%) : white.with-alpha(8.5%); + } + + layout := VerticalLayout { + padding: 15px; + spacing: 10px; + + if WindowInfo.is-portrait: VerticalLayout { + vertical-stretch: 0; + spacing: parent.spacing; + + TileBaseInfo { + city-name: root.city-name; + current-weather: root.current-weather; + } + + DayForecastGraph { + min-height: self.preferred-height; + + forecast-weather: root.forecast-weather; + show-animations: root.show-animations; + } + } + if !WindowInfo.is-portrait: HorizontalLayout { + spacing: 5% * self.width; + + TileBaseInfo { + horizontal-stretch: 1; + max-width: parent.width * 40%; + height: self.preferred-height; + + city-name: root.city-name; + current-weather: root.current-weather; + } + + Rectangle { + min-height: self.preferred-height; + + DayForecastGraph { + forecast-weather: root.forecast-weather; + show-animations: root.show-animations; + } + } + } + } +} diff --git a/ui/controls/busy-layer.slint b/ui/controls/busy-layer.slint new file mode 100644 index 0000000..262b1d5 --- /dev/null +++ b/ui/controls/busy-layer.slint @@ -0,0 +1,47 @@ +import { AppFonts, Images } from "../style/styles.slint"; + +export global BusyLayerController { + out property is-busy: false; + + property busy-counter: 0; + + public function set-busy() { + busy-counter += 1; + + // updating only when real change happen to avoid: + // https://github.com/slint-ui/slint/issues/5209 + if (!root.is-busy) { + root.is-busy = true; + } + } + public function unset-busy() { + busy-counter -= 1; + + // updating only when real change happen to avoid: + // https://github.com/slint-ui/slint/issues/5209 + if (root.is-busy && busy-counter == 0) { + root.is-busy = false; + } + } +} + +export component BusyLayer inherits Rectangle { + Rectangle { + background: black; + opacity: 0.75; + } + + Image { + width: 75px; + source: Images.busy-indicator; + + colorize: white.darker(15%); + rotation-origin-x: self.width / 2; + rotation-origin-y: self.height / 2 + self.height * 7.15%; + + rotation-angle: Math.mod(animation-tick() / 3.25ms, 360) * 1deg; + } + + // touch blocker + TouchArea {} +} diff --git a/ui/controls/generic.slint b/ui/controls/generic.slint new file mode 100644 index 0000000..6dee3f3 --- /dev/null +++ b/ui/controls/generic.slint @@ -0,0 +1,135 @@ +import { AppPalette, AppFonts } from "../style/styles.slint"; + +export component AppText inherits Text { + color: AppPalette.foreground; + + overflow: elide; +} + +export component IconText inherits AppText { + font-family: AppFonts.icons-font-name; + + horizontal-alignment: center; + vertical-alignment: center; +} + +export component FloatingTextButton inherits Rectangle { + in property text <=> text-item.text; + in property text-color <=> text-item.color; + in property font-size <=> text-item.font-size; + in property font-weight <=> text-item.font-weight; + + callback clicked; + + property size: Math.max(text-item.preferred-width + self.padding-left + self.padding-right, + text-item.preferred-height + self.padding-top + self.padding-bottom); + + drop-shadow-color: self.background.darker(50%); + drop-shadow-blur: 5px; + drop-shadow-offset-x: 3px; + drop-shadow-offset-y: 2px; + + background: AppPalette.background; + border-radius: self.size / 2; + + padding: 15px; + padding-left: self.padding; + padding-right: self.padding; + padding-top: self.padding; + padding-bottom: self.padding; + + preferred-width: self.size; + preferred-height: self.size; + + width: self.preferred-width; + height: self.preferred-height; + + text-item := IconText { + horizontal-alignment: center; + vertical-alignment: center; + } + + TouchArea { + clicked => { root.clicked(); } + } +} + +export component SlideButton inherits Rectangle { + in-out property text <=> text.text; + in-out property enabled <=> touch-area.enabled; + in property background-color; + callback clicked <=> touch-area.clicked; + + background: touch-area.pressed ? self.background-color.darker(10%) : self.background-color; + opacity: root.enabled ? 1.0 : 0.5; + + text := IconText { + font-size: 2rem; + + color: touch-area.pressed ? AppPalette.foreground.darker(10%) : AppPalette.foreground; + } + + touch-area := TouchArea {} +} + +export component TextField inherits Rectangle { + in property icon-text; + in property placeholder-text; + in-out property text <=> text-input.text; + callback edited <=> text-input.edited; + + forward-focus: text-input; + + padding: 5px; + padding-top: self.padding; + padding-right: self.padding; + padding-bottom: self.padding; + padding-left: self.padding; + + preferred-height: text-input.preferred-height + self.padding-top + self.padding-bottom; + height: self.preferred-height; + + border-radius: 5px; + background: white.with-alpha(15%); + + HorizontalLayout { + x: root.padding-left; + width: parent.width - root.padding-left - root.padding-right; + + y: root.padding-top; + height: parent.height - root.padding-top - root.padding-bottom; + + spacing: 10px; + + IconText { + text: root.icon-text; + font-size: text-input.font-size; + } + + AppText { + horizontal-stretch: 1; + + horizontal-alignment: left; + font-size: text-input.font-size; + text: text-input.text == "" ? root.placeholder-text : ""; + + text-input := TextInput { + color: AppPalette.foreground; + font-size: 1.2rem; + } + } + + IconText { + text: "\u{f00d}"; + + font-size: text-input.font-size; + visible: text-input.text != ""; + + TouchArea { + clicked => { + text-input.text = ""; + } + } + } + } +} diff --git a/ui/controls/stackview.slint b/ui/controls/stackview.slint new file mode 100644 index 0000000..d0dd4af --- /dev/null +++ b/ui/controls/stackview.slint @@ -0,0 +1,133 @@ +/*! + * \brief The StackView is a component that can be used to simulate a stack view. + * + * \note: Due to the language limitation only the partial implementaion is possible. + * The component is meant to be a helper. + * + * \par Usage: + * The component can be used in two ways: + * - for smaller pages, where all pages are loaded at once, + * - for more complex pages, where pages are loaded dynamically. + * + * Static pages: + * \code{*.slint} + * stack := StackView { + * current-index: 0; + * min-index: 0; + * + * for color in [ Colors.red, Colors.green, Colors.blue ]: + * StackPage { + * is-current: self.check-is-current(stack.current-index); + * init => { self.page-index = stack.insert-page(); } // StackPage.count increased with insert-page function + * + * TestPage { + * background: color; + * push => { stack.push(); } + * pop => { stack.pop(); } + * } + * } + * } + * \endcode + * + * Dynamic pages: + * \code{*.slint} + * stack := StackView { + * count: 2; // StackPage.count provided manually + * current-index: 0; + * min-index: 0; + * + * if (stack.current-index == 0): StackPage { + * page-index: 0; is-current: true; + * + * TestPage { + * background: Colors.red; + * push => { stack.push(); } + * pop => { stack.pop(); } + * } + * } + * if (stack.current-index == 1): StackPage { + * page-index: 1; is-current: true; + * + * TestPage { + * background: Colors.green; + * push => { stack.push(); } + * pop => { stack.pop(); } + * } + * } + * } + * \endcode + * + * \sa StackPage + */ +export component StackView inherits Rectangle { + /// \brief This property states the number of items in the stack + in-out property count: 0; + + /// \brief This property states the index of the currently visible item + in-out property current-index: -1; + + /// \brief This property configures the minimum index the pop function can set (-1 by default) + in property min-index: -1; + + /// \brief This property configures the minimum index the push function can set (#count -1 by default) + in property max-index: self.count - 1; + + /// \brief This function increases the pages #count by one and returns new page index + public function insert-page() -> int { + self.count += 1; + return self.count - 1; + } + + /// \brief This function increases the #current-index if possible + public function push() { + if (self.current-index < Math.min(self.max-index, self.count - 1)) { + self.current-index += 1; + } + } + + /// \brief This function decreased the #current-index if possible + public function pop() { + if (self.current-index > Math.max(self.min-index, -1)) { + self.current-index -= 1; + } + } +} + +/*! + * \brief The StackPage is a component to use in the StackView. + * + * The real content can either derive from the StackPage (which is Rectangle based) or can be contained + * as the page children. + * + * Inherits: + * \code{*.slint} + * export TestPage inherits StackPage { + * background: color; + * } + * \endcode + * + * Contains: + * \code{*.slint} + * StackPage { + * TestPage { + * background: Colors.red; + * } + * } + * \endcode + * + * \sa StackView + */ +export component StackPage inherits TouchArea { + /// \brief This property configures the page index + in property page-index: -1; + + /// \brief This property configures whether the page is a current page (if not, it is hidden) + in property is-current: false; + + /// \brief This function is a helper function to use when setting the #is-current property + public pure function check-is-current(current-index: int) -> bool { + return current-index == self.page-index; + } + + visible: self.is-current; +} diff --git a/ui/controls/weather.slint b/ui/controls/weather.slint new file mode 100644 index 0000000..4f03882 --- /dev/null +++ b/ui/controls/weather.slint @@ -0,0 +1,155 @@ +import { AppPalette, AppFonts } from "../style/styles.slint"; +import { AppText } from "./generic.slint"; +import { WindowInfo } from "../ui_utils.slint"; +import { IconType } from "../weather_datatypes.slint"; + +export component WeatherIconBase inherits Text { + color: AppPalette.foreground; + font-family: AppFonts.weather-icons-font-name; + + horizontal-alignment: center; + vertical-alignment: center; +} + +export component WeatherIcon inherits WeatherIconBase { + in property icon-type; + + pure function get-weather-icon-url(type: IconType) -> string { + if (type == IconType.Sunny) { return "\u{f00d}"; } + if (type == IconType.PartiallyCloudy) { return "\u{f002}"; } + if (type == IconType.MostlyCloudy) { return "\u{f041}"; } + if (type == IconType.Cloudy) { return "\u{f013}"; } + if (type == IconType.SunnyRainy) { return "\u{f008}"; } + if (type == IconType.Rainy) { return "\u{f015}"; } + if (type == IconType.Stormy) { return "\u{f01e}"; } + if (type == IconType.Snowy) { return "\u{f064}"; } + if (type == IconType.Foggy) { return "\u{f063}"; } + + return ""; + } + + pure function get-weather-icon-color(type: IconType) -> color { + if (type == IconType.Sunny) { return AppPalette.sun-yellow; } + + return AppPalette.foreground; + } + + text: root.get-weather-icon-url(root.icon-type); + color: root.get-weather-icon-color(root.icon-type); +} + +component DataText inherits AppText { + in property minimal: false; + + font-size: root.minimal ? (WindowInfo.is-portrait ? 0.85rem : 0.9rem) : 1.1rem; + overflow: elide; + horizontal-alignment: center; + vertical-alignment: center; +} + +export component RainInfo inherits Rectangle { + in property precipitation-probability; + in property rain-volume; + in property snow-volume; + + in property minimal: false; + + property is-snow: root.snow-volume > root.rain-volume; + property volume: Math.max(root.rain-volume, root.snow-volume); + property probability: Math.round(root.precipitation-probability * 100); + + property volume-display: Math.round(volume * 10) / 10; + property type-indicator: self.is-snow ? "\u{f076}" : "\u{f078}"; + property type-color: self.is-snow ? AppPalette.snow-white : AppPalette.rain-blue; + + property max-bar-volume: 10; + + padding-top: 2px; + padding-bottom: 2px; + + opacity: root.minimal ? (root.precipitation-probability * 30% + 70%) : 100%; + + if !root.minimal: Rectangle { + x: parent.width - self.width; + y: parent.height - self.height; + + width: 3px; + height: (parent.height - parent.padding-top - parent.padding-bottom) * + Math.min(root.volume, root.max-bar-volume) / root.max-bar-volume * 100%; + + background: root.type-color; + opacity: root.precipitation-probability * 70% + 30%; + } + + VerticalLayout { + HorizontalLayout { + alignment: center; + spacing: 3px; + + DataText { + minimal: root.minimal; + text: "\{root.probability}%"; + + color: root.type-color; + } + + if !root.minimal || !WindowInfo.is-portrait: WeatherIcon { + font-size: root.minimal ? 0.9rem : 1rem; + text: "\{root.type-indicator}"; + color: root.type-color; + } + + if root.minimal && WindowInfo.is-portrait: DataText { + minimal: true; + text: "/ \{root.volume-display}l"; + + color: root.type-color; + } + } + + if !root.minimal || !WindowInfo.is-portrait: DataText { + minimal: root.minimal; + text: "\{root.volume-display}l"; + + color: root.type-color; + } + } +} + +export component UvInfo inherits Rectangle { + in property uv-index; + + in property minimal: false; + + property uv-index-rate: (root.uv-index / 12.0); + + opacity: root.minimal ? (root.uv-index-rate * 30% + 70%) : 100%; + + HorizontalLayout { + alignment: center; + spacing: 3px; + + WeatherIcon { + text: "\u{f06e}"; + + font-size: root.minimal ? 0.9rem : 1.3rem; + + opacity: root.minimal ? 100% : (root.uv-index-rate * 70% + 30%); + color: AppPalette.sun-yellow; + } + + if root.minimal: DataText { + minimal: true; + text: "UV"; + + color: AppPalette.sun-yellow; + } + + DataText { + minimal: root.minimal; + text: "\{root.uv-index}"; + + color: AppPalette.sun-yellow; + } + } +} diff --git a/ui/expanded_city_weather_tile.slint b/ui/expanded_city_weather_tile.slint new file mode 100644 index 0000000..d641ca2 --- /dev/null +++ b/ui/expanded_city_weather_tile.slint @@ -0,0 +1,282 @@ +import { VerticalBox, HorizontalBox } from "std-widgets.slint"; + +import { WindowInfo } from "./ui_utils.slint"; +import { AppPalette } from "./style/styles.slint"; +import { AppText } from "./controls/generic.slint"; +import { WeatherIcon, RainInfo, UvInfo } from "./controls/weather.slint"; +import { WeatherInfo, WeatherForecastInfo, CityWeatherInfo } from "weather_datatypes.slint"; +import { CityWeather } from "weather_datatypes.slint"; + +import { CityWeatherTile } from "city_weather_tile.slint"; + +component ForecastDayLineBase inherits Rectangle { + out property<{temp: length, rain: length, uv: length}> fields-width: { + temp: 90px, rain: 65px, uv: 65px + }; +} + +component ForecastDataText inherits AppText { + font-size: 1.1rem; + overflow: elide; + horizontal-alignment: center; + vertical-alignment: center; +} + +component ForecastTitleText inherits ForecastDataText { + font-size: 1.25rem; + font-weight: 500; + letter-spacing: 1pt; +} + +component ForecastTitleLine inherits ForecastDayLineBase { + HorizontalLayout { + // spacer + Rectangle { horizontal-stretch: 1; } + + ForecastTitleText { + preferred-width: root.fields-width.temp; + text: @tr("Max/Min"); + } + ForecastTitleText { + preferred-width: root.fields-width.rain; + text: @tr("Rain"); + } + ForecastTitleText { + preferred-width: root.fields-width.uv; + text: @tr("UV"); + } + + if !WindowInfo.is-portrait: HorizontalLayout { + width: WindowInfo.is-portrait ? 0% : 50%; + + for description[index] in [ @tr("Morning"), @tr("Day"), @tr("Evening"), @tr("Night") ]: + ForecastTitleText { + width: 25%; + text: description; + } + } + } +} + +component ForecastDayLine inherits ForecastDayLineBase { + in property day-name; + in property day-weather; + + height: 50px; + + HorizontalLayout { + // spacer + Rectangle { width: 5px; } + + name-text := ForecastDataText { + horizontal-stretch: 1; + min-width: self.preferred-width; + + horizontal-alignment: left; + text: root.day-name; + font-size: 1.2rem; + } + + WeatherIcon { + icon-type: root.day-weather.icon_type; + font-size: 1.8rem; + + visible: WindowInfo.window-width >= 360px; + } + + // spacer + Rectangle { + max-width: WindowInfo.window-width >= 380px ? self.preferred-width : 0; + preferred-width: 15px; + } + + ForecastDataText { + property min-temp: Math.round(root.day-weather.detailed_temp.min); + property max-temp: Math.round(root.day-weather.detailed_temp.max); + + preferred-width: root.fields-width.temp; + text: "\{self.max-temp}° / \{self.min-temp}°"; + } + + RainInfo { + precipitation-probability: root.day-weather.precipitation_prob; + rain-volume: root.day-weather.rain; + snow-volume: root.day-weather.snow; + + preferred-width: root.fields-width.rain; + } + + UvInfo { + uv-index: root.day-weather.uv; + + preferred-width: root.fields-width.uv; + } + } +} + +component ForecastDayDetails inherits HorizontalLayout { + in property day-weather; + + property<[{ time: string, temp: float }]> temp-model: [ + { time: "\u{f051}", temp: Math.round(root.day-weather.detailed_temp.morning) }, + { time: "\u{f00d}", temp: Math.round(root.day-weather.detailed_temp.day) }, + { time: "\u{f052}", temp: Math.round(root.day-weather.detailed_temp.evening) }, + { time: "\u{f02e}", temp: Math.round(root.day-weather.detailed_temp.night) }, + ]; + + padding-top: WindowInfo.is-portrait ? 10px : 0; + padding-bottom: WindowInfo.is-portrait ? 10px : 0; + + for time-temp in root.temp-model: + HorizontalLayout { + width: 25%; + alignment: center; + spacing: 5px; + + WeatherIcon { + text: "\{time-temp.time}"; + font-size: 1.3rem; + } + + ForecastDataText { + font-size: 1.3rem; + text: "\{time-temp.temp}°"; + } + } +} + +component ForecastDayDelegate inherits TouchArea { + in property expanded: false; + in property alternative-background: false; + + in property day-name; + in property day-weather; + + animate height { duration: 250ms; easing: ease-in-out-quad; } + + height: root.expanded ? self.preferred-height : main-info-line.preferred-height; + + Rectangle { + background: root.alternative-background ? Colors.white.transparentize(80%) : transparent; + clip: true; + + VerticalLayout { + main-info-line := HorizontalLayout { + ForecastDayLine { + day-name: root.day-name; + day-weather: root.day-weather; + } + + if !WindowInfo.is-portrait: ForecastDayDetails { + width: 50%; + day-weather: root.day-weather; + } + } + + if WindowInfo.is-portrait: ForecastDayDetails { + day-weather: root.day-weather; + } + } + } +} + +export component ExpandedCityWeatherTile inherits TouchArea { + in property city-weather-info <=> base-tile.city-weather-info; + in property alternative-background <=> base-tile.alternative-background; + + out property expanded: false; + in-out property animation-duration: 300ms; + + in property block-x; + in property block-y; + in property block-width; + in property block-height; + + in property full-x; + in property full-y; + in property full-width; + in property full-height; + + public function expand() { + // Not working properly without the lines below. (A bug?) + // Seems the animation in transition using old values, and + // accessing the properties somehow forces the update. + root.x; root.y; root.width; root.height; + details-rect.height; + + root.expanded = true; + } + + public function collapse() { + root.expanded = false; + } + + x: self.block-x; + y: self.block-y; + width: self.block-width; + height: self.block-height; + + visible: self.opacity > 0; + opacity: 0; + + states [ + full-size when root.expanded: { + opacity: 1; + x: full-x; + y: full-y; + width: full-width; + height: full-height; + + in { + animate x, y, width, height { duration: root.animation-duration; easing: ease-in-out-quad; } + } + out { + animate x, y, width, height { duration: root.animation-duration; easing: ease-in-out-quad; } + animate opacity { delay: root.animation-duration; } + } + } + ] + + VerticalLayout { + base-tile := CityWeatherTile { + show-animations: false; + + clicked => { + root.clicked(); + } + } + + details-rect := Rectangle { + vertical-stretch: 1; + + clip: true; + + Flickable { + padding-top: 15px; + padding-bottom: 15px; + + y: self.padding-top; + height: parent.height - self.padding-top - self.padding-bottom; + + VerticalLayout { + alignment: start; + padding-left: 15px; + padding-right: 15px; + + ForecastTitleLine {} + + for day-forecast-weather[index] in root.city-weather-info.forecast-weather: + ForecastDayDelegate { + alternative-background: Math.mod(index, 2) == 0; + day-name: day-forecast-weather.day-name; + day-weather: day-forecast-weather.weather-info; + + clicked => { + self.expanded = !self.expanded; + } + } + } + } + } + } +} diff --git a/ui/forecast_with_graph.slint b/ui/forecast_with_graph.slint new file mode 100644 index 0000000..fc6c59c --- /dev/null +++ b/ui/forecast_with_graph.slint @@ -0,0 +1,125 @@ +import { VerticalBox } from "std-widgets.slint"; +import { AppPalette } from "./style/styles.slint"; +import { AppText } from "./controls/generic.slint"; +import { WeatherIcon, RainInfo, UvInfo } from "./controls/weather.slint"; +import { WeatherInfo, WeatherForecastInfo, CityWeather } from "./weather_datatypes.slint"; + +component ForecastGraphText inherits AppText { + horizontal-alignment: center; + vertical-alignment: center; + + font-size: 0.85rem; +} + +component DayForecastGraphEntry inherits VerticalLayout { + in property day-name; + in property day-weather; + in property detailed: true; + + spacing: 5px; + + ForecastGraphText { + font-size: 1.2rem; + text: day-name; + } + + WeatherIcon { + icon-type: day-weather.icon-type; + font-size: 1.6rem; + } + + VerticalLayout { + spacing: 5px; + + ForecastGraphText { + text: Math.round(day-weather.detailed_temp.max) + "° / " + Math.round(day-weather.detailed_temp.min) + "°"; + } + + RainInfo { + precipitation-probability: root.day-weather.precipitation_prob; + rain-volume: root.day-weather.rain; + snow-volume: root.day-weather.snow; + + minimal: true; + } + + UvInfo { + uv-index: root.day-weather.uv; + + minimal: true; + } + } +} + +export component DayForecastGraph inherits Rectangle { + in property <[WeatherForecastInfo]> forecast-weather; + in property show-animations: true; + + property preferred-day-width: 85px; + + // max-days-count is not directly as a binding here, only when the value is actually changed. + // This is to avoid reevaluation of the conditional components that rely on it for every window size change. + // see: https://github.com/slint-ui/slint/issues/5209 + property max-days-count: 0; + property days-count: Math.min(root.forecast-weather.length, root.max-days-count); + + property day-width: root.width / root.days-count; + + function update-max-days-count() { + if (Math.floor(root.width / root.preferred-day-width) != root.max-days-count) { + root.max-days-count = Math.floor(root.width / root.preferred-day-width); + } + } + + init => { root.update-max-days-count(); } + changed width => { root.update-max-days-count(); } + + preferred-height: layout.preferred-height; + + Path { + property visible-part: 0%; + + y: 0; + height: 50%; + + stroke-width: 2px; + commands: CityWeather.get_forecast_graph_command( + root.forecast-weather, root.days-count, self.width, self.height); + + stroke: @linear-gradient(90deg, AppPalette.foreground.with-alpha(25%) 0%, + AppPalette.foreground.with-alpha(25%) self.visible-part, + transparent self.visible-part, + transparent 100%); + + opacity: 0.0; + animate opacity { duration: root.show-animations ? 1200ms : 0ms; easing: ease-in; } + animate visible-part { duration: root.show-animations ? 900ms : 0ms; easing: ease-in; } + + init => { + self.opacity = 1.0; + self.visible-part = 100%; + } + } + + layout := HorizontalLayout { + for index in root.days-count: + DayForecastGraphEntry { + property day-forecast-weather: root.forecast-weather[index]; + property animation-duration: 0ms; + + width: root.day-width; + day-name: day-forecast-weather.day-name; + day-weather: day-forecast-weather.weather-info; + + opacity: 0.0; + animate opacity { duration: self.animation-duration; easing: ease-in-out-quad; } + + init => { + if (root.show-animations) { + self.animation-duration = 600ms + (500ms - index * 50ms) * index; + } + self.opacity = 1.0; + } + } + } +} diff --git a/ui/location_datatypes.slint b/ui/location_datatypes.slint new file mode 100644 index 0000000..5d36fab --- /dev/null +++ b/ui/location_datatypes.slint @@ -0,0 +1,14 @@ +export struct GeoLocationEntry { + name: string, + state: string, + country: string, + lat: float, + lon: float, +} + +export global GeoLocation { + in property <[GeoLocationEntry]> result-list; + + callback search-location(string); + callback add-location(GeoLocationEntry); +} \ No newline at end of file diff --git a/ui/location_search.slint b/ui/location_search.slint new file mode 100644 index 0000000..258b020 --- /dev/null +++ b/ui/location_search.slint @@ -0,0 +1,64 @@ +import { PageBase } from "page-base.slint"; +import { AppText, TextField } from "./controls/generic.slint"; +import { BusyLayerController } from "./controls/busy-layer.slint"; +import { GeoLocation } from "./location_datatypes.slint"; + +import { Button } from "std-widgets.slint"; + +export component LocationSearchView inherits PageBase { + callback close-request; + + public function clear() { + GeoLocation.search_location(""); + text-field.text = ""; + } + + forward-focus: text-field; + + VerticalLayout { + padding: 20px; + spacing: 10px; + + text-field := TextField { + icon-text: "\u{f002}"; + placeholder-text: "Search"; + + edited => { + GeoLocation.search_location(self.text); + } + } + + Flickable { + VerticalLayout { + alignment: start; + + for data[index] in GeoLocation.result-list : Rectangle { + preferred-height: layout.preferred-height + 20px; + min-height: self.preferred-height; + + layout := VerticalLayout { + alignment: center; + spacing: 5px; + + AppText { + text: data.name; + font-size: 1.3rem; + } + AppText { + text: data.state == "" ? data.country : data.state + ", " + data.country; + font-size: 0.9rem; + } + } + + TouchArea { + clicked => { + BusyLayerController.set-busy(); + GeoLocation.add-location(data); + root.close-request(); + } + } + } + } + } + } +} diff --git a/ui/main.slint b/ui/main.slint new file mode 100644 index 0000000..fd61831 --- /dev/null +++ b/ui/main.slint @@ -0,0 +1,179 @@ +import { Palette } from "std-widgets.slint"; +import { WindowInfo, WindowInfoHelper } from "./ui_utils.slint"; +import { StackView, StackPage } from "./controls/stackview.slint"; +import { CityListView } from "./city_weather.slint"; +import { CityWeather } from "./weather_datatypes.slint"; +import { LocationSearchView } from "./location_search.slint"; +import { GeoLocation } from "./location_datatypes.slint"; +import { AppPalette, AppFonts } from "./style/styles.slint"; +import { FloatingTextButton } from "./controls/generic.slint"; +import { BusyLayerController, BusyLayer } from "./controls/busy-layer.slint"; + +// Re export for native rust +export { WindowInfo, AppPalette, BusyLayerController, CityWeather, GeoLocation } + +component EdgeFloatingTextButton inherits FloatingTextButton { + out property edge-spacing: 15px; + + padding: 10px; + font-size: 2rem; +} + +component AnimatedStackPage inherits StackPage { + // is-active and is-opened are not set as a binding here, only when the value is actually changed. + // This is to avoid redundant reevaluation of dependent properties and conditional elements. + // see: https://github.com/slint-ui/slint/issues/5209 + out property is-active: false; + out property is-opened: false; + + // using a helper int property to be able to use animate + property is-active-value: 0; + + property animation-duration: 250ms; + + visible: root.is-active; + + init => { root.is-active = (self.is-active_value == 1); } + changed is-active-value => { root.is-active = (self.is-active_value == 1); } + + states [ + active when self.is-current: { + is-active-value: 1; + + out { + animate is-active-value { delay: root.animation-duration; } + } + } + ] + + content := Rectangle { + changed y => { + // First open animation is not working properly without the line below. (A bug?) + // Seems the animation in transition is using old values, + // and accessing the property somehow forces the update. + self.y; + + if (root.is-opened != (self.y == 0)) { + root.is-opened = (self.y == 0); + } + } + + y: root.is-current ? 0px : root.height; + + animate y { duration: root.animation-duration; easing: ease-in-out-quad; } + + @children + } +} + +enum PageType { + Main, + AddLocation, +} + +export component AppWindow inherits Window { + background: AppPalette.background; + default-font-size: AppFonts.default-font-size; + + preferred-width: 900px; + preferred-height: 600px; + + WindowInfoHelper { + init => { + // no support for the different modes currently + // this is to display slint badge in proper colors + Palette.color-scheme = ColorScheme.dark; + } + } + + stack := StackView { + function show-page(pageType : PageType) { + if (pageType == PageType.Main) { + self.current-index = 0; + } + else if (pageType == PageType.AddLocation) { + self.current-index = 1; + } + } + + function back-to-main() { + self.show-page(PageType.Main); + } + + current-index: 0; + min-index: 0; + + StackPage { + is-current: self.check-is-current(stack.current-index); + init => { self.page-index = stack.insert-page(); } + visible: self.page-index <= stack.current-index; + + CityListView {} + + // right (refresh) button + EdgeFloatingTextButton { + x: parent.width - self.width - self.edge-spacing; + y: parent.height - self.height - self.edge-spacing; + + text: "\u{f01e}"; + + clicked => { + BusyLayerController.set-busy(); + CityWeather.refresh-all(); + } + } + + // left (add) button + EdgeFloatingTextButton { + x: self.edge-spacing; + y: parent.height - self.height - self.edge-spacing; + + visible: CityWeather.can-add-city; + + text: "\u{f067}"; + + clicked => { + stack.show-page(PageType.AddLocation); + } + } + } + + AnimatedStackPage { + is-current: self.check-is-current(stack.current-index); + init => { self.page-index = stack.insert-page(); } + + location-search-view := LocationSearchView { + property is-active: parent.is-active; + property is-opened: parent.is-opened; + + changed is-active => { + if (self.is-active) { + self.clear(); + } + } + + changed is-opened => { + if (self.is-opened) { + self.focus(); + } + } + + close-request => { + self.clear-focus(); + stack.back-to-main(); + } + + EdgeFloatingTextButton { + x: parent.width - self.width - self.edge-spacing; + y: parent.height - self.height - self.edge-spacing; + + text: "\u{f00d}"; + + clicked => { location-search-view.close-request(); } + } + } + } + } + + if BusyLayerController.is-busy: BusyLayer {} +} diff --git a/ui/page-base.slint b/ui/page-base.slint new file mode 100644 index 0000000..fc9ee34 --- /dev/null +++ b/ui/page-base.slint @@ -0,0 +1,5 @@ +import { AppPalette } from "style/styles.slint"; + +export component PageBase inherits Rectangle { + background: @linear-gradient(180deg, AppPalette.background 0%, AppPalette.alternate-background 100%); +} diff --git a/ui/style/styles.slint b/ui/style/styles.slint new file mode 100644 index 0000000..75652ab --- /dev/null +++ b/ui/style/styles.slint @@ -0,0 +1,28 @@ +import { Palette } from "std-widgets.slint"; + +import "../assets/weathericons-font.ttf"; +import "../assets/font-awesome.ttf"; + +export global AppPalette { + out property background: #1673b4; + out property alternate-background: #2296bc; + out property foreground: white; + + out property sun-yellow: Colors.yellow; + out property snow-white: Colors.cornsilk; + out property rain-blue: #7DCDFF.brighter(15%); + + out property error-red: Colors.red.darker(20%); +} + +export global AppFonts { + out property default-font-size: 10pt; + + out property icons-font-name: "FontAwesome"; + out property weather-icons-font-name: "Weather Icons"; +} + +export global Images { + out property busy-indicator: @image-url("../assets/busy-indicator.png"); + out property slint-logo: @image-url("../assets/slint-logo.svg"); +} diff --git a/ui/ui_utils.slint b/ui/ui_utils.slint new file mode 100644 index 0000000..e809f6b --- /dev/null +++ b/ui/ui_utils.slint @@ -0,0 +1,27 @@ +export global WindowInfo { + // default values provided for the slint-viewer + in property window-width: 400px; + in property window-height: 700px; + + // is-portrait is not set as a binding here, only when the value is actually changed. + // This is to avoid reevaluation of the conditional components that rely on it for every window size change. + // see: https://github.com/slint-ui/slint/issues/5209 + in property is-portrait: true; +} + +export component WindowInfoHelper inherits Rectangle { + function check-is-portrait() { + if (WindowInfo.is-portrait != (self.width < self.height)) { + WindowInfo.is-portrait = (self.width < self.height); + } + } + + changed width => { + WindowInfo.window-width = self.width; + self.check-is-portrait(); + } + changed height => { + WindowInfo.window-height = self.height; + self.check-is-portrait(); + } +} \ No newline at end of file diff --git a/ui/weather_datatypes.slint b/ui/weather_datatypes.slint new file mode 100644 index 0000000..469be9a --- /dev/null +++ b/ui/weather_datatypes.slint @@ -0,0 +1,54 @@ +export enum IconType { + Unknown, + Sunny, + PartiallyCloudy, + MostlyCloudy, + Cloudy, + SunnyRainy, + Rainy, + Stormy, + Snowy, + Foggy, +} + +export struct TemperatureInfo { + min: float, + max:float, + + morning: float, + day: float, + evening:float, + night:float, +} + +export struct WeatherInfo { + description: string, + icon_type: IconType, + current_temp: float, + detailed_temp: TemperatureInfo, + uv: int, + precipitation_prob: float, + rain: float, + snow: float, +} + +export struct WeatherForecastInfo { + day_name: string, + weather_info: WeatherInfo, +} + +export struct CityWeatherInfo { + city_name: string, + current_weather: WeatherInfo, + forecast_weather: [WeatherForecastInfo], +} + +export global CityWeather { + in property <[CityWeatherInfo]> city-weather; + in property can-add-city: false; + + pure callback refresh-all(); + pure callback delete(int); + pure callback reorder(int, int); + pure callback get_forecast_graph_command([WeatherForecastInfo], int, length, length) -> string; +} diff --git a/wasm/index.html b/wasm/index.html new file mode 100644 index 0000000..98f07f1 --- /dev/null +++ b/wasm/index.html @@ -0,0 +1,38 @@ + + + + + + +

+
+ + + +
+ +