From e6f53e0d83bf4ee41e71e1198f1d4e5e132f13be Mon Sep 17 00:00:00 2001 From: vandechat96 Date: Thu, 3 Aug 2023 18:39:33 +0200 Subject: [PATCH] I need to commit more often. First commit BTW --- .gitignore | 14 + Cargo.lock | 4368 +++++++++++++++++++++++++ Cargo.toml | 7 + buildui.sh | 2 + deckapp/Cargo.toml | 14 + deckapp/src/main.rs | 17 + deckui/Cargo.toml | 20 + deckui/build.rs | 3 + deckui/icons/back.png | Bin 0 -> 8062 bytes deckui/icons/loop.png | Bin 0 -> 8710 bytes deckui/icons/pause.png | Bin 0 -> 4113 bytes deckui/icons/play-pause.png | Bin 0 -> 5420 bytes deckui/icons/play.png | Bin 0 -> 7964 bytes deckui/icons/rec.png | Bin 0 -> 8882 bytes deckui/icons/shuffle.png | Bin 0 -> 10380 bytes deckui/icons/skip.png | Bin 0 -> 5482 bytes deckui/icons/stop.png | Bin 0 -> 3281 bytes deckui/src/main.rs | 19 + deckui/ui/appwindow.slint | 24 + deckui/ui/widgets/clickable.slint | 19 + deckui/ui/widgets/mediacontrols.slint | 36 + lib/Cargo.toml | 16 + lib/src/lib.rs | 140 + runcc.yml | 8 + 24 files changed, 4707 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 buildui.sh create mode 100644 deckapp/Cargo.toml create mode 100644 deckapp/src/main.rs create mode 100644 deckui/Cargo.toml create mode 100644 deckui/build.rs create mode 100644 deckui/icons/back.png create mode 100644 deckui/icons/loop.png create mode 100644 deckui/icons/pause.png create mode 100644 deckui/icons/play-pause.png create mode 100644 deckui/icons/play.png create mode 100644 deckui/icons/rec.png create mode 100644 deckui/icons/shuffle.png create mode 100644 deckui/icons/skip.png create mode 100644 deckui/icons/stop.png create mode 100644 deckui/src/main.rs create mode 100644 deckui/ui/appwindow.slint create mode 100644 deckui/ui/widgets/clickable.slint create mode 100644 deckui/ui/widgets/mediacontrols.slint create mode 100644 lib/Cargo.toml create mode 100644 lib/src/lib.rs create mode 100644 runcc.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e10ca2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +### Rust template +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb + + +.idea diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..fc9f2cb --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4368 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39" +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.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77020650e30e570cff04a3650872b9be650b79de494005da13809574a0d1fdb" + +[[package]] +name = "accesskit_consumer" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14346d6d9b9e88d03f42f21453977946dac425b3e962476931e1da8a959817b3" +dependencies = [ + "accesskit", +] + +[[package]] +name = "accesskit_macos" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa2fdecd5a520958deb7fd3614c2b6500d808a3acfc6ddd52211bf57ba8d6bc" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", + "once_cell", +] + +[[package]] +name = "accesskit_unix" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce3ec78c315c97e25a394e957912d34a26224f576902334bfd505f6cd092c39d" +dependencies = [ + "accesskit", + "accesskit_consumer", + "async-channel", + "atspi", + "futures-lite", + "serde", + "zbus", +] + +[[package]] +name = "accesskit_windows" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a4ab2fad3575f5c77f21cddeaa0e156db6ce35f8f3522f7c69e0ac51e7bd0f4" +dependencies = [ + "accesskit", + "accesskit_consumer", + "arrayvec", + "once_cell", + "paste", + "windows", +] + +[[package]] +name = "accesskit_winit" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "badc92d61313d1e495edb0f1b3ec0fe6e337e1ea1e868bc1d02b9c245d46da5d" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_unix", + "accesskit_windows", + "winit", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-activity" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +dependencies = [ + "android-properties", + "bitflags 1.3.2", + "cc", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum 0.6.1", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "anyhow" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" + +[[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 = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener", + "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", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand 1.9.0", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock", + "autocfg", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite", + "log", + "parking", + "polling", + "rustix 0.37.23", + "slab", + "socket2", + "waker-fn", +] + +[[package]] +name = "async-lock" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-process" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" +dependencies = [ + "async-io", + "async-lock", + "autocfg", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix 0.37.23", + "signal-hook", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "async-task" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" + +[[package]] +name = "async-trait" +version = "0.1.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-waker" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" + +[[package]] +name = "atspi" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa" +dependencies = [ + "async-recursion", + "async-trait", + "atspi-macros", + "enumflags2", + "futures-lite", + "serde", + "tracing", + "zbus", + "zbus_names", +] + +[[package]] +name = "atspi-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "auto_enums" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa44067eaa1097fc513fcdea6b9c42ea8a792f750a181937d52b315477e7b7a" +dependencies = [ + "derive_utils", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.28", + "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.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + +[[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 = "block-sys" +version = "0.1.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + +[[package]] +name = "blocking" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +dependencies = [ + "async-channel", + "async-lock", + "async-task", + "atomic-waker", + "fastrand 1.9.0", + "futures-lite", + "log", +] + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "by_address" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8dba2868114ed769a1f2590fc9ae5eb331175b44313b6c9b922f8f7ca813d0" + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "calloop" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" +dependencies = [ + "bitflags 1.3.2", + "log", + "nix 0.25.1", + "slotmap", + "thiserror", + "vec_map", +] + +[[package]] +name = "cc" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0" +dependencies = [ + "jobserver", + "libc", +] + +[[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.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cgl" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" +dependencies = [ + "libc", +] + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading 0.7.4", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation", + "core-graphics-types", + "foreign-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 = "concurrent-queue" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "const-field-offset" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6304465f16f463cddc572b737c3df93576edd3a6b53f057bd8beeb29f4ef8dfd" +dependencies = [ + "const-field-offset-macro", + "field-offset", +] + +[[package]] +name = "const-field-offset-macro" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57aaaad9185d3bcb3afe63549d8ba60b2fb0ea8dc2da83f62dd56805edf56fd1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[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.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172" +dependencies = [ + "clipboard-win", + "objc", + "objc-foundation", + "objc_id", + "smithay-clipboard", + "x11-clipboard", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "core-text" +version = "19.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" +dependencies = [ + "core-foundation", + "core-graphics", + "foreign-types", + "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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b6a1d47f376a62bbea281408fe331879b9822c1edb8f67320c7cb8d96a02eb" +dependencies = [ + "cpp_macros", +] + +[[package]] +name = "cpp_build" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8f839b67a3deba30b58b281b5fca61477a90830beb084c58bdb9bebd227a1a" +dependencies = [ + "cc", + "cpp_common", + "lazy_static", + "proc-macro2", + "regex", + "syn 2.0.28", + "unicode-xid", +] + +[[package]] +name = "cpp_common" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d2b968b7b2ac412836e8ce1dfc3dfd5648ae7e8a42fcbbf5bc1d33bb795b0d" +dependencies = [ + "lazy_static", + "proc-macro2", + "syn 2.0.28", +] + +[[package]] +name = "cpp_macros" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d36d9acb58020380e756d56a8dfc84d0f6ace423bbd4fedf83992b257b7f147" +dependencies = [ + "aho-corasick 0.7.20", + "byteorder", + "cpp_common", + "lazy_static", + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "cpufeatures" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "critical-section" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" + +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[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 = "data-url" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" + +[[package]] +name = "deckapp" +version = "0.1.0" +dependencies = [ + "anyhow", + "env_logger", + "lib", + "log", +] + +[[package]] +name = "deckui" +version = "0.1.0" +dependencies = [ + "slint", + "slint-build", +] + +[[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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7590f99468735a318c254ca9158d0c065aa9b5312896b5a043b5e39bc96f5fa2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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 = "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.0", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[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.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "enumflags2" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[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 = "exr" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18" +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.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" + +[[package]] +name = "fdeflate" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "femtovg" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3a2d0ff0df09856a5c1c89cc83863a1f0f994c55452186621bb57a01f270b3" +dependencies = [ + "bitflags 2.3.3", + "fnv", + "generational-arena", + "glow", + "image", + "imgref", + "lru", + "rgb", + "rustybuzz", + "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.0", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.16", + "windows-sys 0.48.0", +] + +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +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.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin 0.9.8", +] + +[[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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4" +dependencies = [ + "roxmltree", +] + +[[package]] +name = "fontdb" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af8d8cbea8f21307d7e84bca254772981296f058a1d36b461bf4d83a7499fc9e" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2 0.6.2", + "slotmap", + "tinyvec", + "ttf-parser 0.19.1", +] + +[[package]] +name = "fontdue" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0793f5137567643cf65ea42043a538804ff0fbf288649e2141442b602d81f9bc" +dependencies = [ + "hashbrown 0.13.2", + "ttf-parser 0.15.2", +] + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[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-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generational-arena" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e94aff08e743b651baaea359664321055749b398adff8740a7399af7796e7" +dependencies = [ + "cfg-if", +] + +[[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.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + +[[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 = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glutin" +version = "0.30.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b0385782048be65f0a9dd046c469d6a758a53fe1aa63a8111dea394d2ffa2f" +dependencies = [ + "bitflags 1.3.2", + "cfg_aliases", + "cgl", + "core-foundation", + "dispatch", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", + "libloading 0.7.4", + "objc2", + "once_cell", + "raw-window-handle", + "wayland-sys 0.30.1", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "glutin-winit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4" +dependencies = [ + "cfg_aliases", + "glutin", + "raw-window-handle", + "winit", +] + +[[package]] +name = "glutin_egl_sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3bcbddc51573b977fc6dca5d93867e4f29682cdbaf5d13e48f4fa4346d4d87" +dependencies = [ + "gl_generator", + "windows-sys 0.45.0", +] + +[[package]] +name = "glutin_glx_sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" +dependencies = [ + "gl_generator", + "x11-dl", +] + +[[package]] +name = "glutin_wgl_sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" +dependencies = [ + "gl_generator", +] + +[[package]] +name = "half" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "i-slint-backend-qt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60c60fec461b2a404aa931e7057c019d24dad0663c0847062f9a480dc03ce2d5" +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.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67d5ea2053b057cc5a13e07882144ef0a8bf539e44e708dcf1b4cbe67dd910e9" +dependencies = [ + "cfg-if", + "i-slint-backend-qt", + "i-slint-backend-winit", + "i-slint-core", +] + +[[package]] +name = "i-slint-backend-winit" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0279550c83e2a73ae7d5f737d5593c175793b3fcf6cd9a9bce8ffd127897e3da" +dependencies = [ + "accesskit", + "accesskit_winit", + "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", + "instant", + "lyon_path", + "once_cell", + "pin-weak", + "raw-window-handle", + "scoped-tls-hkt", + "scopeguard", + "send_wrapper", + "vtable", + "wasm-bindgen", + "web-sys", + "winit", +] + +[[package]] +name = "i-slint-common" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d94c6046396a1ad1ecfab9d59e07b3e6691846f2f99e42effe99a74bfed877" +dependencies = [ + "cfg-if", + "derive_more", + "fontdb", + "libloading 0.8.0", +] + +[[package]] +name = "i-slint-compiler" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43986d2851beca3df33505b0ee4996feb54f058c611f4fadbcca4a0ffb2aa055" +dependencies = [ + "by_address", + "codemap", + "codemap-diagnostic", + "css-color-parser2", + "derive_more", + "dunce", + "fontdue", + "i-slint-common", + "image", + "itertools", + "linked_hash_set", + "lyon_extra", + "lyon_path", + "num_enum 0.6.1", + "once_cell", + "proc-macro2", + "quote", + "resvg", + "rowan", + "smol_str", + "strum", + "thiserror", + "url", +] + +[[package]] +name = "i-slint-core" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9c5d4796364f86c7524ae083225c56ef43fe3d367e4b6ee519e64271a7df8d7" +dependencies = [ + "atomic-polyfill", + "auto_enums", + "cfg-if", + "clru", + "const-field-offset", + "derive_more", + "euclid", + "i-slint-common", + "i-slint-core-macros", + "image", + "instant", + "integer-sqrt", + "lyon_algorithms", + "lyon_extra", + "lyon_geom", + "lyon_path", + "num-traits", + "once_cell", + "pin-project", + "pin-weak", + "resvg", + "rgb", + "scoped-tls-hkt", + "scopeguard", + "slab", + "static_assertions", + "strum", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", + "vtable", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "i-slint-core-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c162fd90a8d6e5232ad1f5d21363cc4c5ec32df30260164c230af393699c13" +dependencies = [ + "quote", + "syn 2.0.28", +] + +[[package]] +name = "i-slint-renderer-femtovg" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4217d7a135b97769f00440e740b1b929cbc002952264511a74dc56a44308253a" +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", + "instant", + "lyon_path", + "once_cell", + "pin-weak", + "raw-window-handle", + "rgb", + "scoped-tls-hkt", + "ttf-parser 0.18.1", + "unicode-script", + "unicode-segmentation", + "vtable", + "wasm-bindgen", + "web-sys", + "winapi", +] + +[[package]] +name = "i-slint-renderer-skia" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11875f8b7dfd9066adc4026fa9303d585200ef530c36292d94b3be957b450193" +dependencies = [ + "cfg-if", + "cfg_aliases", + "cocoa", + "const-field-offset", + "core-foundation", + "core-graphics-types", + "derive_more", + "foreign-types", + "glow", + "glutin", + "i-slint-common", + "i-slint-core", + "i-slint-core-macros", + "instant", + "lyon_path", + "metal", + "objc", + "once_cell", + "pin-weak", + "raw-window-handle", + "scoped-tls-hkt", + "skia-safe", + "unicode-segmentation", + "vtable", + "winapi", + "winit", + "wio", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.24.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-rational", + "num-traits", + "png", + "qoi", + "tiff", +] + +[[package]] +name = "imagesize" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" + +[[package]] +name = "imgref" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cf49df1085dcfb171460e4592597b84abe50d900fb83efb6e41b20fefd6c2c" + +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[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 = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix 0.38.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[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.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" +dependencies = [ + "rayon", +] + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +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.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" +dependencies = [ + "arrayvec", +] + +[[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 = "lib" +version = "0.1.0" +dependencies = [ + "anyhow", + "crossbeam", + "log", + "rmp-serde", + "serde", + "thiserror", +] + +[[package]] +name = "libc" +version = "0.2.147" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" + +[[package]] +name = "lyon_algorithms" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00a0349cd8f0270781bb93a824b63df6178e3b4a27794e7be3ce3763f5a44d6e" +dependencies = [ + "lyon_path", + "num-traits", +] + +[[package]] +name = "lyon_extra" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ce2ae38f2480094ec1f0d5df51a75581fa84f0e8f32a0edb1d264630c99f3b" +dependencies = [ + "lyon_path", +] + +[[package]] +name = "lyon_geom" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + +[[package]] +name = "lyon_path" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca507745ba7ccbc76e5c44e7b63b1a29d2b0d6126f375806a5bbaf657c7d6c45" +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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[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.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-graphics-types", + "foreign-types", + "log", + "objc", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum 0.5.11", + "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.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.7.1", + "static_assertions", +] + +[[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-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +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.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[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.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3.patch-leaks.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + +[[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 = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +dependencies = [ + "atomic-polyfill", + "critical-section", +] + +[[package]] +name = "orbclient" +version = "0.3.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f" +dependencies = [ + "redox_syscall 0.3.5", +] + +[[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.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4" +dependencies = [ + "ttf-parser 0.19.1", +] + +[[package]] +name = "parking" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" + +[[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 = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "png" +version = "0.17.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" +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 = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" +dependencies = [ + "proc-macro2", + "syn 2.0.28", +] + +[[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", +] + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +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.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "116e96ef85a287acd172c5ed017ef56ee1d9e4f016558e8fc1625925f3f77468" +dependencies = [ + "cpp", + "cpp_build", + "semver", +] + +[[package]] +name = "quote" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +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.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rctree" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +dependencies = [ + "aho-corasick 1.0.2", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" +dependencies = [ + "aho-corasick 1.0.2", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" + +[[package]] +name = "resvg" +version = "0.34.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0e3d65cea36eefb28a020edb6e66341764e00cd4b426e0c1f0599b1adaa78f5" +dependencies = [ + "log", + "pico-args", + "rgb", + "svgtypes", + "tiny-skia 0.10.0", + "usvg", +] + +[[package]] +name = "rgb" +version = "0.8.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rmp" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rowan" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64449cfef9483a475ed56ae30e2da5ee96448789fb2aa240a04beb6a055078bf" +dependencies = [ + "countme", + "hashbrown 0.12.3", + "memoffset 0.8.0", + "rustc-hash", + "text-size", +] + +[[package]] +name = "roxmltree" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8" +dependencies = [ + "xmlparser", +] + +[[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.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee020b1716f0a80e2ace9b03441a749e402e86712f15f16fe8a8f75afac732f" +dependencies = [ + "bitflags 2.3.3", + "errno", + "libc", + "linux-raw-sys 0.4.5", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.21.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.2", + "sct", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "rustybuzz" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "smallvec", + "ttf-parser 0.18.1", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-general-category", + "unicode-script", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e9d7eaddb227e8fbaaa71136ae0e1e913ca159b86c7da82f3e8f0044ad3a63" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sctk-adwaita" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" +dependencies = [ + "ab_glyph", + "log", + "memmap2 0.5.10", + "smithay-client-toolkit", + "tiny-skia 0.8.4", +] + +[[package]] +name = "semver" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.180" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea67f183f058fe88a4e3ec6e2788e003840893b91bac4559cabedd00863b3ed" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.180" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24e744d7782b686ab3b73267ef05697159cc0e5abbed3f47f9933165e5219036" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "serde_json" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +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 = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "skia-bindings" +version = "0.63.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffc650a2d45d9acb7e251568dc6193d882cf66aeb78e5dcc08bc2b816ffbbd5" +dependencies = [ + "bindgen", + "cc", + "flate2", + "heck", + "lazy_static", + "regex", + "serde_json", + "tar", + "toml", + "ureq", +] + +[[package]] +name = "skia-safe" +version = "0.63.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae6df6412e061d9792938efc923dc41236edf778058ecc63dc385cd5d5a9ac1" +dependencies = [ + "bitflags 2.3.3", + "lazy_static", + "skia-bindings", + "winapi", + "wio", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slint" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e9bdb79798c7fb20c20ec74cd1f230b96ac8832aeb49335c8e45dfb76a3161" +dependencies = [ + "const-field-offset", + "i-slint-backend-selector", + "i-slint-core", + "num-traits", + "once_cell", + "pin-weak", + "slint-macros", + "vtable", +] + +[[package]] +name = "slint-build" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaa41e33ef48d7a98bf6bed33637556e5f818b2f9340ed44736c17d1cbe3417" +dependencies = [ + "i-slint-compiler", + "spin_on", + "thiserror", + "toml_edit", +] + +[[package]] +name = "slint-macros" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05a7d5c7093cd7b1b750fecbfd94e896c05cde20d39a9d73a2a94ca1ba351263" +dependencies = [ + "i-slint-compiler", + "proc-macro2", + "quote", + "spin_on", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" + +[[package]] +name = "smithay-client-toolkit" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" +dependencies = [ + "bitflags 1.3.2", + "calloop", + "dlib", + "lazy_static", + "log", + "memmap2 0.5.10", + "nix 0.24.3", + "pkg-config", + "wayland-client", + "wayland-cursor", + "wayland-protocols", +] + +[[package]] +name = "smithay-clipboard" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" +dependencies = [ + "smithay-client-toolkit", + "wayland-client", +] + +[[package]] +name = "smol_str" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[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.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6069ca09d878a33f883cc06aaa9718ede171841d3832450354410b718b097232" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.28", +] + +[[package]] +name = "svgtypes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed4b0611e7f3277f68c0fa18e385d9e2d26923691379690039548f867cef02a7" +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.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tar" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec96d2ffad078296368d46ff1cb309be1c23c513b4ab0e22a45de0185275ac96" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +dependencies = [ + "cfg-if", + "fastrand 2.0.0", + "redox_syscall 0.3.5", + "rustix 0.38.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +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.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "tiff" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "tiny-skia" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "png", + "tiny-skia-path 0.8.4", +] + +[[package]] +name = "tiny-skia" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7db11798945fa5c3e5490c794ccca7c6de86d3afdd54b4eb324109939c6f37bc" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "log", + "png", + "tiny-skia-path 0.10.0", +] + +[[package]] +name = "tiny-skia-path" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tiny-skia-path" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f60aa35c89ac2687ace1a2556eaaea68e8c0d47408a2e3e7f5c98a489e7281c" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[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 = "toml" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "ttf-parser" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd" + +[[package]] +name = "ttf-parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" + +[[package]] +name = "ttf-parser" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a464a4b34948a5f67fddd2b823c62d9d92e44be75058b99939eae6c5b6960b33" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "uds_windows" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" +dependencies = [ + "tempfile", + "winapi", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-bidi-mirroring" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" + +[[package]] +name = "unicode-ccc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" + +[[package]] +name = "unicode-general-category" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7" + +[[package]] +name = "unicode-ident" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" + +[[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.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-script" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[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 = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "ureq" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" +dependencies = [ + "base64", + "flate2", + "log", + "once_cell", + "rustls", + "rustls-webpki 0.100.1", + "url", + "webpki-roots", +] + +[[package]] +name = "url" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "usvg" +version = "0.34.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2304b933107198a910c1f3219acb65246f2b148f862703cffd51c6e62156abe" +dependencies = [ + "base64", + "log", + "pico-args", + "usvg-parser", + "usvg-text-layout", + "usvg-tree", + "xmlwriter", +] + +[[package]] +name = "usvg-parser" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b940fea80394e3b14cb21c83fa1b8f8a41023c25929bba68bb84a76193ebed" +dependencies = [ + "data-url", + "flate2", + "imagesize", + "kurbo", + "log", + "roxmltree", + "simplecss", + "siphasher", + "svgtypes", + "usvg-tree", +] + +[[package]] +name = "usvg-text-layout" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69dfd6119f431aa7e969b4a69f9cc8b9ae37b8ae85bb26780ccfa3beaf8b71eb" +dependencies = [ + "fontdb", + "kurbo", + "log", + "rustybuzz", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "usvg-tree", +] + +[[package]] +name = "usvg-tree" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3185eb13b6e3d3cf1817d29612251cc308d5a7e5e6235362e67efe832435c6d9" +dependencies = [ + "rctree", + "strict-num", + "svgtypes", + "tiny-skia-path 0.10.0", +] + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[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.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eaffdd71dc6eae079fb88ff1d555cd442d25150c28b9fdc69b8af4a9720268" +dependencies = [ + "atomic-polyfill", + "const-field-offset", + "stable_deref_trait", + "vtable-macro", +] + +[[package]] +name = "vtable-macro" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b2b8eecdb8e4284adf5546fc518f048f6dc33e7203dbe36fa93a4add39b31f6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[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.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.28", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "wayland-client" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +dependencies = [ + "bitflags 1.3.2", + "downcast-rs", + "libc", + "nix 0.24.3", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys 0.29.5", +] + +[[package]] +name = "wayland-commons" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +dependencies = [ + "nix 0.24.3", + "once_cell", + "smallvec", + "wayland-sys 0.29.5", +] + +[[package]] +name = "wayland-cursor" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +dependencies = [ + "nix 0.24.3", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +dependencies = [ + "bitflags 1.3.2", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +dependencies = [ + "dlib", + "lazy_static", + "pkg-config", +] + +[[package]] +name = "wayland-sys" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" +dependencies = [ + "dlib", + "lazy_static", + "log", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki 0.100.1", +] + +[[package]] +name = "weezl" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-wsapoll" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +dependencies = [ + "winapi", +] + +[[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.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-implement" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-interface" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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.1", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winit" +version = "0.28.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196" +dependencies = [ + "android-activity", + "bitflags 1.3.2", + "cfg_aliases", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio", + "ndk", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "sctk-adwaita", + "smithay-client-toolkit", + "wasm-bindgen", + "wayland-client", + "wayland-commons", + "wayland-protocols", + "wayland-scanner", + "web-sys", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "winnow" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46aab759304e4d7b2075a9aecba26228bb073ee8c50db796b2c72c676b5d807" +dependencies = [ + "memchr", +] + +[[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.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464" +dependencies = [ + "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.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +dependencies = [ + "gethostname", + "nix 0.24.3", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +dependencies = [ + "nix 0.24.3", +] + +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + +[[package]] +name = "xcursor" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" +dependencies = [ + "nom", +] + +[[package]] +name = "xdg-home" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" +dependencies = [ + "nix 0.26.2", + "winapi", +] + +[[package]] +name = "xml-rs" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" + +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + +[[package]] +name = "zbus" +version = "3.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "byteorder", + "derivative", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.26.2", + "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.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "3.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" +dependencies = [ + "proc-macro-crate", + "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..1f8eeec --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,7 @@ +[workspace] +members = [ + 'deckui', + 'deckapp', + 'lib' +] + diff --git a/buildui.sh b/buildui.sh new file mode 100644 index 0000000..1baf122 --- /dev/null +++ b/buildui.sh @@ -0,0 +1,2 @@ +cross build --release -p deckui --target=aarch64-unknown-linux-gnu && scp -i ~/.ssh/onekey ./target/aarch64-unknown-linux-gnu/release/deckui rockpro64:/home/jika/deckui2 && echo "Uploaded" + diff --git a/deckapp/Cargo.toml b/deckapp/Cargo.toml new file mode 100644 index 0000000..192443d --- /dev/null +++ b/deckapp/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "deckapp" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +lib = {path = "../lib/"} + +anyhow = "1.0" +log = "0.4" +env_logger = "0.10" + diff --git a/deckapp/src/main.rs b/deckapp/src/main.rs new file mode 100644 index 0000000..2f83540 --- /dev/null +++ b/deckapp/src/main.rs @@ -0,0 +1,17 @@ +use lib::{start_client, start_server, ServerMessage, ClientMessage}; +use log::info; + +fn main() { + env_logger::init_from_env( + env_logger::Env::default().filter_or(env_logger::DEFAULT_FILTER_ENV, "info"), + ); + + let (sender_s, receiver_c) = start_server().unwrap(); + let (sender_c, receiver_s) = start_client().unwrap(); + + sender_s.send(ServerMessage::NowPlaying("Hello".to_string())).unwrap(); + sender_c.send(ClientMessage::PlayPause).unwrap(); + loop{ + + } +} diff --git a/deckui/Cargo.toml b/deckui/Cargo.toml new file mode 100644 index 0000000..15570f5 --- /dev/null +++ b/deckui/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "deckui" +version = "0.1.0" +build = "build.rs" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[package.metadata.cross.build] +default-target = "aarch64-unknown-linux-gnu" + +[[bin]] +path = "src/main.rs" +name = "deckui" + +[dependencies] +slint = "1.0" + +[build-dependencies] +slint-build = "1.0" diff --git a/deckui/build.rs b/deckui/build.rs new file mode 100644 index 0000000..0a2d8aa --- /dev/null +++ b/deckui/build.rs @@ -0,0 +1,3 @@ +fn main() { + slint_build::compile("ui/appwindow.slint").unwrap(); +} diff --git a/deckui/icons/back.png b/deckui/icons/back.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f90172616fc4bd52641509bd8eaebfdbdfdcc0 GIT binary patch literal 8062 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 Sb_Dp%1_Ya0n-m>#yY_!E-y&21 literal 0 HcmV?d00001 diff --git a/deckui/icons/pause.png b/deckui/icons/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..a946b8cdfe1e7d8f4113950feb999e19ddbe4dc8 GIT binary patch literal 4113 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 l2GwI$XJ!fXHoAyKNdWwNCr z%H)We1c)MoAS6nSS|r?x2Z9U%LC}Ci#0UhE+;wPs`};gTtn$d^k!uR>b@%F4J_^7osoM`3632J@)2#pnF+;LqH^B+qRpB@BMfyh2u`L z{P;!L^*@rs%1nznp}eMFzDfBe+v(zGKmYOhS8>@VUoQA+MM0*4#hkx7HeV`FO=}tS zRNU>C-4n}EY3EE@)5xStnIb7yb{=czv9zjWlON7`i@SB@0N5kI3VbS+D>()e9Fhe^>?`zl3X*|nid%{Bw`KK zUs6_LR}4mti702h4?AdV{Nc8pW=$s@D~wUrBcXO~`9^uHo% jE{yBH-?bOuU;Ja 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 URAA#a_`L~0ojsgxtmPj6KLwaixBvhE literal 0 HcmV?d00001 diff --git a/deckui/icons/shuffle.png b/deckui/icons/shuffle.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a1918f235b0d70d95c894f5a2631f63d9a80b9 GIT binary patch literal 10380 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 literal 0 HcmV?d00001 diff --git a/deckui/icons/skip.png b/deckui/icons/skip.png new file mode 100644 index 0000000000000000000000000000000000000000..8016265a00cfc743149474302bbfaf88105743b8 GIT binary patch literal 5482 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 Db|4lg literal 0 HcmV?d00001 diff --git a/deckui/icons/stop.png b/deckui/icons/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6be98eb2a99aee9037740e26c6df2958c82d4a GIT binary patch literal 3281 zcmeH~{Z~^*8pofTw8oc$bk9O`sP9)AG`r`osPO{bdhx&YYR^ z%*^x5ne)tizLUREBygMWJs$wvu$ZV#05qyggSm64W=wtWSE`w(j1hkT;C|Irk#@z2 zB+BTOzW%-R1VwUs)(({nva+&Pr|jMHfpmvbwpyW*A9X}{1H7^gi+X3X+F*Zht45xI zwEfavdgo@qu@&zuz7s2(AM#(8D5d)7-&5}gP0>{eN0*t*eCl*=pxFHvQRD}^&F-I(EM}KSY>fKMX@I~=t zKH9+2OjrUTwQ>q;uCR7s6<$rUzPZ}Ra%Dov%=6JX3PfU{W6ijA9Az*Ry(&9m;u7W9 zcp;P45->=uN1bMy-`12N8$y3zusXsV49n$9EJ9wCo3~sa$-AwlDWmbzvhZ<+R_a`j zFAe_T5|W0PRuU6=OLv#Wd^i~cwz;{_kQ*j-tNg6BGA7eq6P?cBm zr4w3`Bg(BeR&i)G4bm}fn#rHYdh}>vOMZ9|@u7IHd*Y?f;Cu+-W)#4hf5p``@s!Uv zwtD`Y^PG;pa_@Bvt$p7<{6q0JR@3`6K}V!v!Nf407)C|AtMMZqW6Y(zr26FP&gbXO zKc|~QMDeP2+ak`+?{zRxYCT#y@sQD?_LON>jhM~vu9bf8p$$qt84NwK+i%43McW_S zW(FtGyw3q7IsL^}hEb4uuaE-`*IIqG_ED#qzE*n9L+c|RxSjr;#fQrG@Qx|SVGQ>a z_ln?~`~p7oJvob3dh>P~lNW$uk}mo5iC|&RiQY(>8YOa~bx_q+jVj{Eew$zWp5q?c z22L+8`z1J>nJmjo-+LU+uNW=g1t#W}LZ)d^@XIa7j11Ul$Em8C(fOEa$AUu9RFY6w8u5ae&gWY=*j?Sn(@^h%4BOE*cMUYsB|yV18CP#S9bn9 zfY(ugs^VG0?0L+l!|ZLCeGLAu-a;1_uGkRR%>BZ8%xiMY3wUph>=>53<#@Zji$NY#~Rn8U|~ zRW1^Pe}(slP}E$qUvE7?A-au1G^W~t3kDa1wl+hGUlizi3d^ZI9vZ?871mFT2VhOD zFQ+kM?DNjDXD+`&G6pZ8{7T*mLK|1D%$XWCCpR%HOJ;=RPiRmPrHj&=i1^fiqbbjJbDT*fGm`}jN-_TSG)^VQ`}C7(BPD76uq{ncG8CbRB~PLk+qw|Rf@LC7 zS;F_7sYMxWe`wL3fg_Zz^YwU&)p3dNcRdl47o)!E;!HKV5Y?<9whP?7H$ZBCqd0O! z7?%(Wn(4~jn#c~tv%L7a&<<(t0fD>gFYzaps_!l%U7Krpve&9yLI|++qNs1yNk0A^ Dq9(HK literal 0 HcmV?d00001 diff --git a/deckui/src/main.rs b/deckui/src/main.rs new file mode 100644 index 0000000..58516fc --- /dev/null +++ b/deckui/src/main.rs @@ -0,0 +1,19 @@ +slint::include_modules!(); + +fn main() -> Result<(), slint::PlatformError> { + let ui = AppWindow::new()?; + + let ui_handle = ui.as_weak(); + + ui.global::().on_play_pause(move || { + ui_handle.unwrap().set_now_playing("a".into()); + }); + + ui.global::().on_next(move || { + }); + + ui.global::().on_previous(move || { + }); + + ui.run() +} diff --git a/deckui/ui/appwindow.slint b/deckui/ui/appwindow.slint new file mode 100644 index 0000000..d717972 --- /dev/null +++ b/deckui/ui/appwindow.slint @@ -0,0 +1,24 @@ +import { Button, VerticalBox } from "std-widgets.slint"; +import { MediaControls, MediaLogic } from "widgets/mediacontrols.slint"; +export { MediaLogic } + + +export component AppWindow inherits Window { + background: white; + in-out property now_playing: "test"; + + VerticalLayout { + alignment: center; + + MediaControls { } + Text { + horizontal-alignment: center; + color: black; + text: root.now_playing; + font-size:50px; + font-weight: 600; + } + } + + +} diff --git a/deckui/ui/widgets/clickable.slint b/deckui/ui/widgets/clickable.slint new file mode 100644 index 0000000..5c561c3 --- /dev/null +++ b/deckui/ui/widgets/clickable.slint @@ -0,0 +1,19 @@ + + +export component Clickable inherits TouchArea { + in property icon; + callback action; + + + Image { + width: 128px; + height: 128px; + colorize: root.pressed ? #4D4D4D: black; + source: icon; + } + + clicked => { + action(); + } + +} diff --git a/deckui/ui/widgets/mediacontrols.slint b/deckui/ui/widgets/mediacontrols.slint new file mode 100644 index 0000000..5a5b9a7 --- /dev/null +++ b/deckui/ui/widgets/mediacontrols.slint @@ -0,0 +1,36 @@ +import { Clickable } from "clickable.slint"; +import { HorizontalBox } from "std-widgets.slint"; + +export global MediaLogic { + pure callback play-pause(); + pure callback next(); + pure callback previous(); +} + +export component MediaControls inherits Clickable { + in-out property playing: false; + + HorizontalBox { + width: 450px; + Clickable { + icon: @image-url("../../icons/back.png"); + } + + Clickable { + icon: playing ? @image-url("../../icons/pause.png"): @image-url("../../icons/play.png"); + action => { + root.playing = !root.playing; + MediaLogic.play-pause(); + } + } + Clickable { + icon: @image-url("../../icons/skip.png"); + } + + + + + } + + +} diff --git a/lib/Cargo.toml b/lib/Cargo.toml new file mode 100644 index 0000000..041e6db --- /dev/null +++ b/lib/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "lib" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1.0" +thiserror = "1.0" +log = "0.4" + +crossbeam = "0.8" + +serde = { version = "1.0", features = ["derive"] } +rmp-serde = "1.1" diff --git a/lib/src/lib.rs b/lib/src/lib.rs new file mode 100644 index 0000000..1d13475 --- /dev/null +++ b/lib/src/lib.rs @@ -0,0 +1,140 @@ +use std::{ + io::{self, Read, Write}, + net::{TcpListener, TcpStream}, + result::Result::Ok, + thread, + time::Duration, +}; + +use anyhow::Result; +use crossbeam::channel::{self, Receiver, Sender}; +use log::{error, info}; +use rmp_serde::{Deserializer, Serializer}; +use serde::{Deserialize, Serialize}; + +pub fn create_listener(address: &str, port: u16) -> TcpListener { + TcpListener::bind((address, port)).unwrap_or_else(|e| { + if e.kind() == io::ErrorKind::AddrInUse { + info!("Port {} is already being used by another program", port); + std::process::exit(1); + } else if e.kind() == io::ErrorKind::AddrNotAvailable { + info!("Address {} not available", address); + std::process::exit(1); + } else { + panic!("{:?}", e); + } + }) +} + +#[derive(Serialize, Deserialize, Debug)] +pub enum ClientMessage { + Next, + Previous, + PlayPause, +} + +#[derive(Serialize, Deserialize, Debug)] +pub enum ServerMessage { + NowPlaying(String), +} + +pub fn start_server() -> Result<(Sender, Receiver)> { + let (sender_c, reciever_c) = channel::bounded(4); + let (sender_s, reciever_s) = channel::bounded(4); + + let server = create_listener("0.0.0.0", 6487); + info!("Listening on port {}", 6487); + server.set_nonblocking(true)?; + + thread::spawn(move || { + for stream_result in server.incoming() { + match stream_result { + Ok(stream) => { + let reciever_s = reciever_s.clone(); + let sender_c = sender_c.clone(); + + thread::spawn(move || { + if let Err(error) = handle_connection(stream, reciever_s, sender_c,"Client") { + error!("error while handling stream: {}", error); + } + }) + } // Spawn a new thread, ignore the return value because we don't need to join threads + _ => continue, + }; + } + }); + + Ok((sender_s, reciever_c)) +} + + + + +pub fn start_client() -> Result<(Sender, Receiver)> { + let (sender_c, reciever_c) = channel::bounded(4); + let (sender_s, reciever_s) = channel::bounded(4); + + info!("Connecting"); + let server = TcpStream::connect("127.0.0.1:6487")?; + info!("Connected successfully to {}", "127.0.0.1:6487"); + server.set_nonblocking(true)?; + + thread::spawn(move || { + handle_connection(server, reciever_c, sender_s, "Server") }); + + Ok((sender_c, reciever_s)) +} + + + + +fn handle_connection( + mut stream: TcpStream, + reciever: Receiver, + sender: Sender, + origin: &str, +) -> Result<()> +where R : Serialize +{ + loop { + thread::sleep(Duration::from_millis(200)); + if !reciever.is_empty() { + let msg: R = reciever.recv()?; + let mut msg_buf = Vec::new(); + msg.serialize(&mut Serializer::new(&mut msg_buf))?; + + stream.write(&msg_buf)?; + } + handle_read(&mut stream, origin)?; + } +} + +fn handle_read(stream: &mut TcpStream, origin: &str) -> Result<()> { + let mut byte_read = 0; + let mut read_buff = [0u8; 4096]; + + if byte_read == 0 { + byte_read = match stream.read(&mut read_buff) { + Ok(0) => return Ok(()), // Socket closed + Ok(n) => n, + Err(e) if e.kind() == io::ErrorKind::WouldBlock => 0, // If there is no data, return 0 bytes written + Err(_) => return Ok(()), + }; + } + + // Write data from tunnel to stream + if byte_read > 0 { + info!("[{origin}] {:?}", &read_buff[0..byte_read]); + + if origin == "Server" { + let a: ServerMessage = rmp_serde::from_slice(&read_buff[0..byte_read]).unwrap(); + info!("{:?}", a); + } else { + let a: ClientMessage = rmp_serde::from_slice(&read_buff[0..byte_read]).unwrap(); + info!("{:?}", a); + + } + //sender_c.send(msg); + } + Ok(()) +} diff --git a/runcc.yml b/runcc.yml new file mode 100644 index 0000000..0f7243d --- /dev/null +++ b/runcc.yml @@ -0,0 +1,8 @@ +commands: + lib: | + cargo watch -d 2 -w lib -x "build -p lib" + deckui: | + cargo watch -d 2 -w deckui -- sh ./buildui.sh + deckapp: | + cargo watch -d 2 -w deckapp -w lib -x "run -p deckapp" +