diff options
Diffstat (limited to 'examples/statetracker')
| -rw-r--r-- | examples/statetracker/Cargo.lock | 2492 | ||||
| -rw-r--r-- | examples/statetracker/Cargo.toml | 35 | ||||
| -rw-r--r-- | examples/statetracker/src/command.rs | 13 | ||||
| -rw-r--r-- | examples/statetracker/src/connect.rs | 90 | ||||
| -rw-r--r-- | examples/statetracker/src/formatter.rs | 48 | ||||
| -rw-r--r-- | examples/statetracker/src/main.rs | 241 | ||||
| -rw-r--r-- | examples/statetracker/src/server.rs | 336 | ||||
| -rw-r--r-- | examples/statetracker/src/widgets/aliasmanager.rs | 91 | ||||
| -rw-r--r-- | examples/statetracker/src/widgets/bufferview.rs | 105 | ||||
| -rw-r--r-- | examples/statetracker/src/widgets/mod.rs | 5 |
10 files changed, 0 insertions, 3456 deletions
diff --git a/examples/statetracker/Cargo.lock b/examples/statetracker/Cargo.lock deleted file mode 100644 index 4c2a64b..0000000 --- a/examples/statetracker/Cargo.lock +++ /dev/null @@ -1,2492 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aho-corasick" -version = "0.7.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -dependencies = [ - "memchr", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anyhow" -version = "1.0.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "associative-cache" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46016233fc1bb55c23b856fe556b7db6ccd05119a0a392e04f0b3b7c79058f16" - -[[package]] -name = "atk" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba" -dependencies = [ - "atk-sys", - "bitflags", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.5.4", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "bumpalo" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - -[[package]] -name = "bytes" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" - -[[package]] -name = "cairo-rs" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482" -dependencies = [ - "bitflags", - "cairo-sys-rs", - "glib", - "libc", - "thiserror", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "cc" -version = "1.0.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" - -[[package]] -name = "cfg-expr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cocoa" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "const_fn" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" - -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "core-graphics" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" -dependencies = [ - "bitflags", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" -dependencies = [ - "bitflags", - "core-foundation", - "foreign-types", - "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 = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "darling" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" -dependencies = [ - "darling_core", - "quote", - "syn", -] - -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - -[[package]] -name = "druid" -version = "0.7.0" -source = "git+https://github.com/linebender/druid?rev=0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a#0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a" -dependencies = [ - "console_error_panic_hook", - "druid-derive", - "druid-shell", - "fluent-bundle", - "fluent-langneg", - "fluent-syntax", - "fnv", - "im", - "instant", - "tracing", - "tracing-subscriber 0.2.25", - "tracing-wasm", - "unic-langid", - "unicode-segmentation", - "xi-unicode", -] - -[[package]] -name = "druid-derive" -version = "0.4.0" -source = "git+https://github.com/linebender/druid?rev=0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a#0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "druid-shell" -version = "0.7.0" -source = "git+https://github.com/linebender/druid?rev=0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a#0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a" -dependencies = [ - "anyhow", - "bitflags", - "block", - "cairo-rs", - "cfg-if", - "cocoa", - "core-graphics", - "foreign-types", - "gdk-sys", - "glib-sys", - "gtk", - "gtk-sys", - "instant", - "js-sys", - "keyboard-types", - "kurbo", - "lazy_static", - "objc", - "piet-common", - "scopeguard", - "time 0.3.14", - "tracing", - "wasm-bindgen", - "web-sys", - "winapi", - "wio", -] - -[[package]] -name = "dwrote" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" -dependencies = [ - "lazy_static", - "libc", - "winapi", - "wio", -] - -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "field-offset" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" -dependencies = [ - "memoffset", - "rustc_version 0.3.3", -] - -[[package]] -name = "flate2" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" -dependencies = [ - "cfg-if", - "crc32fast", - "futures 0.1.31", - "libc", - "miniz_oxide 0.4.4", - "tokio-io", -] - -[[package]] -name = "fluent-bundle" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd" -dependencies = [ - "fluent-langneg", - "fluent-syntax", - "intl-memoizer", - "intl_pluralrules", - "rustc-hash", - "self_cell", - "smallvec", - "unic-langid", -] - -[[package]] -name = "fluent-langneg" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94" -dependencies = [ - "unic-langid", -] - -[[package]] -name = "fluent-syntax" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78" -dependencies = [ - "thiserror", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[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 = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - -[[package]] -name = "futures" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" - -[[package]] -name = "futures-executor" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" - -[[package]] -name = "futures-macro" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" - -[[package]] -name = "futures-task" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" - -[[package]] -name = "futures-util" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "gdk" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d749dcfc00d8de0d7c3a289e04a04293eb5ba3d8a4e64d64911d481fa9933b" -dependencies = [ - "bitflags", - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f" -dependencies = [ - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gimli" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" - -[[package]] -name = "gio" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711c3632b3ebd095578a9c091418d10fed492da9443f58ebc8f45efbeb215cb0" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-io", - "gio-sys", - "glib", - "libc", - "once_cell", - "thiserror", -] - -[[package]] -name = "gio-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] - -[[package]] -name = "glib" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c515f1e62bf151ef6635f528d05b02c11506de986e43b34a5c920ef0b3796a4" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "once_cell", - "smallvec", -] - -[[package]] -name = "glib-macros" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aad66361f66796bfc73f530c51ef123970eb895ffba991a234fcf7bea89e518" -dependencies = [ - "anyhow", - "heck", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "glib-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae" -dependencies = [ - "libc", - "system-deps", -] - -[[package]] -name = "gobject-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gtk" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb51122dd3317e9327ec1e4faa151d1fa0d95664cd8fb8dcfacf4d4d29ac70c" -dependencies = [ - "atk", - "bitflags", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "once_cell", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c14c8d3da0545785a7c5a120345b3abb534010fb8ae0f2ef3f47c027fba303e" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "gtk3-macros" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21de1da96dc117443fb03c2e270b2d34b7de98d0a79a19bbb689476173745b79" -dependencies = [ - "anyhow", - "heck", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "humantime" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "im" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" -dependencies = [ - "bitmaps", - "rand_core", - "rand_xoshiro", - "sized-chunks", - "typenum", - "version_check", -] - -[[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 = "intl-memoizer" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f" -dependencies = [ - "type-map", - "unic-langid", -] - -[[package]] -name = "intl_pluralrules" -version = "7.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18f988384267d7066cc2be425e6faf352900652c046b6971d2e228d3b1c5ecf" -dependencies = [ - "tinystr", - "unic-langid", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" - -[[package]] -name = "js-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "keyboard-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a989afac88279b0482f402d234b5fbd405bf1ad051308595b58de4e6de22346b" -dependencies = [ - "bitflags", -] - -[[package]] -name = "kurbo" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.133" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" - -[[package]] -name = "libquassel" -version = "0.1.0" -dependencies = [ - "bitflags", - "byteorder", - "bytes 1.2.1", - "crossbeam-channel", - "failure", - "flate2", - "itertools", - "libquassel-derive", - "log", - "num-derive", - "num-traits", - "once_cell", - "time 0.2.27", - "tokio", - "tokio-util", -] - -[[package]] -name = "libquassel-derive" -version = "0.1.0" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys", -] - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "object" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" - -[[package]] -name = "pango" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581" -dependencies = [ - "bitflags", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "pangocairo" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03ac1e8d456f8f436168aeac41201f0bf49d1dc6c8d01bfb04de2cca25df631" -dependencies = [ - "bitflags", - "cairo-rs", - "glib", - "libc", - "pango", - "pangocairo-sys", -] - -[[package]] -name = "pangocairo-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b9b679ad5c8503e3e533ce06e1619d033274b246e977a6fa1655a6c6ef2b51" -dependencies = [ - "cairo-sys-rs", - "glib-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys", -] - -[[package]] -name = "pest" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "piet" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e2a9423cf762dd366a7cc1fafe9eacc66e2cca12564f231e5740022fe3e9bd0" -dependencies = [ - "kurbo", - "unic-bidi", -] - -[[package]] -name = "piet-cairo" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c27f6ffb9c0406643b863df837b8525c0b95303664cc56916f7271a0641586" -dependencies = [ - "cairo-rs", - "glib", - "pango", - "pango-sys", - "pangocairo", - "piet", - "unicode-segmentation", - "xi-unicode", -] - -[[package]] -name = "piet-common" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3691d842e911f82f491ca8179031afba11dacf482674edc05eb84a3e117eac" -dependencies = [ - "cairo-rs", - "cairo-sys-rs", - "cfg-if", - "core-graphics", - "piet", - "piet-cairo", - "piet-coregraphics", - "piet-direct2d", - "piet-web", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "piet-coregraphics" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d6529ba5b7c89fb4e8fd53783dfa679031f398d1a463cf2533fa6543be7e14" -dependencies = [ - "core-foundation", - "core-foundation-sys", - "core-graphics", - "core-text", - "foreign-types", - "piet", -] - -[[package]] -name = "piet-direct2d" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb06801806103d6d0bafaf89ac285129da1b5783530f4e83162ac079b199dd07" -dependencies = [ - "associative-cache", - "dwrote", - "piet", - "utf16_lit", - "winapi", - "wio", -] - -[[package]] -name = "piet-web" -version = "0.5.0-pre1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57790afb197978c66f454a3eac6d5bf36d41bb28ae85fbb9132ef8b042e6d6e7" -dependencies = [ - "js-sys", - "piet", - "unicode-segmentation", - "wasm-bindgen", - "web-sys", - "xi-unicode", -] - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" - -[[package]] -name = "pretty_env_logger" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" -dependencies = [ - "env_logger", - "log", -] - -[[package]] -name = "proc-macro-crate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" -dependencies = [ - "once_cell", - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro2" -version = "1.0.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd7356a8122b6c4a24a82b278680c73357984ca2fc79a0f9fa6dea7dced7c58" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - -[[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", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[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.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64", - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "ryu" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "self_cell" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af" - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.2", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "serde" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" - -[[package]] -name = "serde_derive" -version = "1.0.145" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -dependencies = [ - "libc", -] - -[[package]] -name = "sized-chunks" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" -dependencies = [ - "bitmaps", - "typenum", -] - -[[package]] -name = "slab" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" - -[[package]] -name = "socket2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check", -] - -[[package]] -name = "statetracker" -version = "0.1.0" -dependencies = [ - "anyhow", - "byteorder", - "bytes 1.2.1", - "crossbeam-channel", - "druid", - "either", - "flate2", - "futures 0.3.24", - "futures-util", - "libquassel", - "log", - "pretty_env_logger", - "time 0.2.27", - "tokio", - "tokio-rustls", - "tokio-util", - "tracing", - "tracing-futures", - "tracing-subscriber 0.3.15", - "webpki-roots", -] - -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_derive", - "syn", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "sha1", - "syn", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" - -[[package]] -name = "strum_macros" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "syn" -version = "1.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "system-deps" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" -dependencies = [ - "anyhow", - "cfg-expr", - "heck", - "itertools", - "pkg-config", - "strum", - "strum_macros", - "thiserror", - "toml", - "version-compare", -] - -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "thiserror" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thread_local" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" -dependencies = [ - "once_cell", -] - -[[package]] -name = "time" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" -dependencies = [ - "const_fn", - "libc", - "standback", - "stdweb", - "time-macros", - "version_check", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" -dependencies = [ - "libc", - "num_threads", -] - -[[package]] -name = "time-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" -dependencies = [ - "proc-macro-hack", - "time-macros-impl", -] - -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "standback", - "syn", -] - -[[package]] -name = "tinystr" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1" - -[[package]] -name = "tokio" -version = "1.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" -dependencies = [ - "autocfg", - "bytes 1.2.1", - "libc", - "memchr", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "winapi", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", -] - -[[package]] -name = "tokio-macros" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes 1.2.1", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -dependencies = [ - "serde", -] - -[[package]] -name = "tracing" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" -dependencies = [ - "cfg-if", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "sharded-slab", - "thread_local", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" -dependencies = [ - "ansi_term", - "matchers", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "tracing-wasm" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" -dependencies = [ - "tracing", - "tracing-subscriber 0.3.15", - "wasm-bindgen", -] - -[[package]] -name = "type-map" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46" -dependencies = [ - "rustc-hash", -] - -[[package]] -name = "typenum" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "unic-bidi" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1356b759fb6a82050666f11dce4b6fe3571781f1449f3ef78074e408d468ec09" -dependencies = [ - "matches", - "unic-ucd-bidi", -] - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-langid" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73328fcd730a030bdb19ddf23e192187a6b01cd98be6d3140622a89129459ce5" -dependencies = [ - "unic-langid-impl", -] - -[[package]] -name = "unic-langid-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a4a8eeaf0494862c1404c95ec2f4c33a2acff5076f64314b465e3ddae1b934d" -dependencies = [ - "tinystr", -] - -[[package]] -name = "unic-ucd-bidi" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d568b51222484e1f8209ce48caa6b430bf352962b877d592c29ab31fb53d8c" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicode-ident" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" - -[[package]] -name = "unicode-segmentation" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" - -[[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 = "utf16_lit" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14706d2a800ee8ff38c1d3edb873cd616971ea59eb7c0d046bb44ef59b06a1ae" - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version-compare" -version = "0.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[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.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" - -[[package]] -name = "web-sys" -version = "0.3.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" -dependencies = [ - "webpki", -] - -[[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-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" -dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "wio" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" -dependencies = [ - "winapi", -] - -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" diff --git a/examples/statetracker/Cargo.toml b/examples/statetracker/Cargo.toml deleted file mode 100644 index 304324d..0000000 --- a/examples/statetracker/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -[package] -name = "statetracker" -version = "0.1.0" -edition = "2021" - -[dependencies] -libquassel = { path = "../../", features = ["framing", "all-quassel-features", "server"], default_features = false } - -druid = { git = "https://github.com/linebender/druid", features = ["im"], rev = "0c0851f7be7b2cadd477b9b0caaa91cb081f2e4a" } - -anyhow = "*" - -tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing-futures = "0.2" - -byteorder = "1" -either = "1" -time = "0.2" -log = "*" - -crossbeam-channel = "0.5" - -tokio = { version = "1", features = ["full", "rt-multi-thread"]} -tokio-util = { version = "0.6", features = ["codec"] } -tokio-rustls = { version = "0.22" } - -bytes = { version = "1" } -flate2 = { version = "1", features = ["tokio"] } -webpki-roots = { version = "0.21" } -futures-util = { version = "0.3", features = ["std"] } -futures = { version = "0.3" } -pretty_env_logger = { version = "0.4" } - -[workspace] diff --git a/examples/statetracker/src/command.rs b/examples/statetracker/src/command.rs deleted file mode 100644 index b10aa90..0000000 --- a/examples/statetracker/src/command.rs +++ /dev/null @@ -1,13 +0,0 @@ -use druid::{Selector, SingleUse}; -use libquassel::message::{objects::Alias, InitData, SyncMessage}; - -use crate::server::Direction; - -pub const CONNECT: Selector = Selector::new("connect"); -pub const ADD_MESSAGE: Selector<SingleUse<crate::Message>> = Selector::new("add_message"); - -pub const ALIASMANAGER_ADD_ALIAS: Selector<SingleUse<Alias>> = - Selector::new("aliasmanager_add_alias"); - -pub const SYNCMESSAGE: Selector<SingleUse<(Direction, SyncMessage)>> = Selector::new("syncmessage"); -pub const INITDATA: Selector<SingleUse<(Direction, InitData)>> = Selector::new("initdata"); diff --git a/examples/statetracker/src/connect.rs b/examples/statetracker/src/connect.rs deleted file mode 100644 index 7b207cd..0000000 --- a/examples/statetracker/src/connect.rs +++ /dev/null @@ -1,90 +0,0 @@ -use std::thread; - -use druid::ExtEventSink; -use futures::StreamExt; -use libquassel::frame::QuasselCodec; -use tokio::{ - io::{AsyncReadExt, AsyncWriteExt}, - net::{TcpListener, TcpStream}, -}; -use tokio_util::codec::Framed; -use tracing::debug; - -use crate::{ - server::{ClientState, Direction, Server}, - StateTracker, -}; - -impl StateTracker { - pub fn connect(&mut self, ctx: ExtEventSink) { - debug!("starting connect"); - - let server = self.server.clone(); - - thread::spawn(move || { - let rt = tokio::runtime::Runtime::new().unwrap(); - - rt.block_on(async move { - let mut s_server = TcpStream::connect(format!( - "{}:{}", - server.settings.host, server.settings.port - )) - .await - .unwrap(); - - let _connack = server.init(&mut s_server).await.unwrap(); - - let codec = QuasselCodec::builder().compression(false).new_codec(); - let framed = Framed::new(s_server, codec); - let (s_sink, s_stream) = framed.split(); - - let listener = TcpListener::bind((server.listen_host, server.listen_port)) - .await - .unwrap(); - let (mut client, _) = listener.accept().await.unwrap(); - - // - // Setup Listener - // - - { - let (mut c_stream, mut c_sink) = client.split(); - - let mut init = [0; 12]; - let n = c_stream.peek(&mut init).await.unwrap(); - c_stream.read(&mut init[..n]).await.unwrap(); - let init = libquassel::message::Init::parse(&init); - debug!("send init bytes: {:?}", init); - - c_sink.write(&[0x0, 0x0, 0x0, 0x2]).await.unwrap(); - } - - let codec = QuasselCodec::builder().compression(false).new_codec(); - let framed = Framed::new(client, codec); - let (c_sink, c_stream) = framed.split(); - - // Start Processing - - let s_state = ClientState::Handshake; - let c_state = ClientState::Handshake; - - tokio::join!( - Server::run( - s_stream, - c_sink, - s_state, - ctx.clone(), - Direction::ServerToClient - ), - Server::run( - c_stream, - s_sink, - c_state, - ctx.clone(), - Direction::ClientToServer - ) - ); - }); - }); - } -} diff --git a/examples/statetracker/src/formatter.rs b/examples/statetracker/src/formatter.rs deleted file mode 100644 index dc81887..0000000 --- a/examples/statetracker/src/formatter.rs +++ /dev/null @@ -1,48 +0,0 @@ -use druid::text::{Formatter, Validation, ValidationError}; - -pub struct U16Formatter; - -impl Formatter<u16> for U16Formatter { - fn format(&self, value: &u16) -> String { - value.to_string() - } - - fn validate_partial_input(&self, input: &str, _sel: &druid::text::Selection) -> Validation { - if input.is_empty() { - return Validation::success(); - } - - if input.len() > 6 { - return Validation::failure(U16ValidationError::WrongNumberOfCharacters); - } - - match input.parse::<u16>() { - Ok(_) => Validation::success(), - Err(err) => Validation::failure(err), - } - } - - fn value(&self, input: &str) -> Result<u16, ValidationError> { - if input.is_empty() || input.len() > 5 { - return Err(ValidationError::new( - U16ValidationError::WrongNumberOfCharacters, - )); - } - - input.parse().map_err(|err| ValidationError::new(err)) - } -} - -#[derive(Debug, Clone)] -pub enum U16ValidationError { - WrongNumberOfCharacters, -} - -impl std::fmt::Display for U16ValidationError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - // TODO set correct display based on actual value - write!(f, "U16ValidationError::WrongNumberOfCharacters") - } -} - -impl std::error::Error for U16ValidationError {} diff --git a/examples/statetracker/src/main.rs b/examples/statetracker/src/main.rs deleted file mode 100644 index 38b4950..0000000 --- a/examples/statetracker/src/main.rs +++ /dev/null @@ -1,241 +0,0 @@ -use std::{collections::HashMap, sync::Arc}; - -use druid::{ - widget::{Align, Either, Flex, Label, List, Split}, - AppDelegate, Command, -}; -use druid::{AppLauncher, Data, Env, Lens, LocalizedString, Widget, WidgetExt, WindowDesc}; -use widgets::{AliasManagerWidget, BufferViewWidget}; - -use libquassel::message::{objects::AliasManager, StatefulSyncableClient, SyncProxy}; -use libquassel::message::{ - objects::{self, BufferViewManager}, - StatefulSyncableServer, -}; - -use tracing::debug; -use tracing_subscriber::prelude::*; - -use crate::server::{Direction, Message, ServerWidget}; - -const SPACING: f64 = 10.0; - -const VERTICAL_WIDGET_SPACING: f64 = 20.0; -const WINDOW_TITLE: LocalizedString<StateTracker> = LocalizedString::new("StateTracker"); - -mod widgets; - -mod command; -mod connect; -mod formatter; -mod server; - -#[derive(Clone, Data, Lens)] -struct StateTracker { - server: server::Server, - messages: Arc<Vec<server::Message>>, - alias_manager: Arc<AliasManager>, - buffer_view_manager: Arc<BufferViewManager>, - connected: bool, - #[data(ignore)] - syncer: Syncer, -} - -impl StateTracker { - fn new() -> StateTracker { - let (sync_channel, rpc_channel) = SyncProxy::init(1024); - - StateTracker { - server: server::Server::default(), - messages: Arc::new(Vec::new()), - alias_manager: Arc::new(AliasManager { - aliases: Vec::new(), - }), - buffer_view_manager: Arc::new(BufferViewManager { - buffer_view_configs: HashMap::new(), - }), - connected: false, - syncer: Syncer { - sync_channel, - rpc_channel, - }, - } - } - - fn widget() -> impl Widget<StateTracker> { - let either = Either::new( - |server, _env| server.connected, - Split::columns( - Flex::column() - .with_child(Label::new("AliasManager")) - .with_child(AliasManagerWidget::new().lens(StateTracker::alias_manager)) - .with_spacer(SPACING) - .with_child(Label::new("BufferViewManager")) - .with_child(BufferViewWidget::new().lens(StateTracker::buffer_view_manager)), - List::new(|| { - Label::new(|item: &Message, _env: &_| format!("{:#?}", item)).padding(10.0) - }) - .scroll() - .vertical() - .lens(StateTracker::messages), - ) - .expand(), - ServerWidget::new() - .fix_width(200.0) - .lens(StateTracker::server), - ); - - let layout = Flex::column() - .with_flex_child(either, 1.0) - .with_spacer(VERTICAL_WIDGET_SPACING); - - Align::centered(layout) - } -} - -impl Default for StateTracker { - fn default() -> Self { - Self::new() - } -} - -struct StateTrackerDelegate; -impl AppDelegate<StateTracker> for StateTrackerDelegate { - fn command( - &mut self, - ctx: &mut druid::DelegateCtx, - _target: druid::Target, - cmd: &Command, - data: &mut StateTracker, - _env: &Env, - ) -> druid::Handled { - if let Some(_) = cmd.get(command::CONNECT) { - debug!("got CONNECT command"); - - data.connect(ctx.get_external_handle()); - data.connected = true; - - return druid::Handled::Yes; - } else if let Some(msg) = cmd.get(command::ADD_MESSAGE) { - let list = Arc::make_mut(&mut data.messages); - list.push(msg.take().unwrap()); - } else if let Some(alias) = cmd.get(command::ALIASMANAGER_ADD_ALIAS) { - let mut alias_manager = Arc::make_mut(&mut data.alias_manager).clone(); - alias_manager.add_alias(alias.take().unwrap()); - data.alias_manager = Arc::new(alias_manager); - } else if let Some(initdata) = cmd.get(command::INITDATA) { - let (_, initdata) = initdata.take().unwrap(); - - debug!("got InitData {:#?}", initdata); - - match initdata.init_data { - objects::Types::AliasManager(alias_manager) => { - data.alias_manager = Arc::new(alias_manager) - } - objects::Types::BufferViewManager(buffer_view_manager) => { - data.buffer_view_manager = Arc::new(buffer_view_manager) - } - objects::Types::BufferViewConfig(config) => { - let id: i32 = initdata.object_name.parse().unwrap(); - - let mut buffer_view_manager = - Arc::make_mut(&mut data.buffer_view_manager).clone(); - - buffer_view_manager.buffer_view_configs.insert(id, config); - - data.buffer_view_manager = Arc::new(buffer_view_manager) - } - _ => (), - } - } else if let Some(msg) = cmd.get(command::SYNCMESSAGE) { - let (direction, msg) = msg.take().unwrap(); - - debug!("direction: {:#?}, msg: {:#?}", direction, msg); - - match msg.class_name.as_str() { - "AliasManager" => { - let mut alias_manager = Arc::make_mut(&mut data.alias_manager).clone(); - - if direction == Direction::ServerToClient { - // StatefulSyncableClient::sync(&mut alias_manager, msg); - } else { - StatefulSyncableServer::sync(&mut alias_manager, msg); - } - - data.alias_manager = Arc::new(alias_manager); - } - "BufferViewConfig" => { - let mut buffer_view_manager = - Arc::make_mut(&mut data.buffer_view_manager).clone(); - - let id: i32 = msg.object_name.parse().unwrap(); - - let buffer_view_config = buffer_view_manager - .buffer_view_configs - .get_mut(&id) - .unwrap(); - - if direction == Direction::ServerToClient { - // StatefulSyncableClient::sync(buffer_view_config, msg); - } else { - StatefulSyncableServer::sync(buffer_view_config, msg); - } - - data.buffer_view_manager = Arc::new(buffer_view_manager); - } - - _ => (), - } - } - - druid::Handled::No - } -} - -// impl Session for StateTracker { -// fn alias_manager(&mut self) -> &mut AliasManager { -// &mut Arc::make_mut(&mut self.alias_manager).clone() -// } -// } - -// TODO make this somehow deref or smth -#[derive(Clone)] -pub struct Syncer { - sync_channel: crossbeam_channel::Receiver<libquassel::message::SyncMessage>, - rpc_channel: crossbeam_channel::Receiver<libquassel::message::RpcCall>, -} - -fn main() { - // tracing_subscriber::fmt::fmt() - // .with_span_events(tracing_subscriber::fmt::format::FmtSpan::ACTIVE) - // .init(); - - let filter = tracing_subscriber::filter::Targets::new() - .with_default(tracing::Level::TRACE) - .with_target("druid", tracing::metadata::LevelFilter::OFF); - - let env_filter = tracing_subscriber::EnvFilter::from_default_env(); - - tracing_subscriber::registry() - .with( - tracing_subscriber::fmt::layer() - .with_span_events(tracing_subscriber::fmt::format::FmtSpan::ACTIVE), - ) - .with(filter) - .with(env_filter) - .init(); - - // describe the main window - let main_window = WindowDesc::new(StateTracker::widget()) - .title(WINDOW_TITLE) - .window_size((400.0, 400.0)); - - // create the initial app state - let initial_state = StateTracker::new(); - - // start the application - AppLauncher::with_window(main_window) - .delegate(StateTrackerDelegate) - .launch(initial_state) - .expect("Failed to launch application"); -} diff --git a/examples/statetracker/src/server.rs b/examples/statetracker/src/server.rs deleted file mode 100644 index 2341fb8..0000000 --- a/examples/statetracker/src/server.rs +++ /dev/null @@ -1,336 +0,0 @@ -use anyhow::{bail, Error}; - -use druid::{ - widget::{ - Align, Button, Checkbox, Container, Controller, ControllerHost, Flex, Label, TextBox, - }, - Command, Data, ExtEventSink, Lens, SingleUse, Target, Widget, WidgetExt, -}; - -use libquassel::{ - deserialize::Deserialize, - frame::QuasselCodec, - message::{self, ConnAck, HandshakeMessage, Init}, -}; - -use futures::{ - stream::{SplitSink, SplitStream}, - SinkExt, StreamExt, -}; -use tokio::{ - io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}, - net::TcpStream, -}; -use tokio_util::codec::Framed; - -use tracing::{debug, trace}; - -use crate::{command, formatter}; - -#[derive(Clone, Debug, Data, Lens)] -pub struct ServerSettings { - pub tls: bool, - pub compression: bool, - pub host: String, - pub port: u16, - pub username: String, - pub password: String, -} - -impl Default for ServerSettings { - fn default() -> Self { - ServerSettings { - tls: false, - compression: false, - host: String::from("localhost"), - port: 4242, - username: String::default(), - password: String::default(), - } - } -} - -#[derive(Clone, Data, Lens)] -pub struct Server { - pub server_name: String, - pub listen_port: u16, - pub listen_host: String, - pub settings: ServerSettings, -} - -#[derive(Debug)] -pub enum ClientState { - Handshake, - Connected, -} - -#[derive(Clone, Debug)] -pub enum Message { - Handshake(HandshakeMessage), - SignalProxy(message::Message), -} - -impl Data for Message { - fn same(&self, other: &Self) -> bool { - if let Self::Handshake(_) = self { - if let Self::Handshake(_) = other { - return true; - } else { - return false; - } - } else if let Self::SignalProxy(_) = self { - if let Self::SignalProxy(_) = other { - return true; - } else { - return false; - } - } else { - return false; - } - } -} - -#[derive(Debug, Clone, Copy, PartialEq)] -pub enum Direction { - ServerToClient, - ClientToServer, -} - -impl Server { - pub async fn init( - &self, - stream: &mut (impl AsyncRead + AsyncWrite + Unpin), - ) -> Result<ConnAck, Error> { - let init = Init::new() - .tls(self.settings.tls) - .compression(self.settings.compression); - - stream.write(&init.serialize()).await?; - - let mut buf = [0; 4]; - stream.read(&mut buf).await?; - - let (_, connack) = ConnAck::parse(&buf).unwrap(); - Ok(connack) - } - - pub async fn run( - mut stream: SplitStream<Framed<TcpStream, QuasselCodec>>, - mut sink: SplitSink<Framed<TcpStream, QuasselCodec>, Vec<u8>>, - mut state: ClientState, - ctx: ExtEventSink, - direction: Direction, - ) { - // Start event loop - while let Some(msg) = stream.next().await { - let msg = msg.unwrap(); - sink.send(msg.to_vec()).await.unwrap(); - let msg = match state { - ClientState::Handshake => { - Server::handle_login_message(&msg, &mut state, direction, ctx.clone()) - .await - .unwrap() - } - ClientState::Connected => Server::handle_message(&msg, direction, ctx.clone()) - .await - .unwrap(), - }; - - ctx.submit_command(command::ADD_MESSAGE, SingleUse::new(msg), Target::Global) - .unwrap(); - } - } - - async fn handle_login_message( - buf: &[u8], - state: &mut ClientState, - _direction: Direction, - _ctx: ExtEventSink, - ) -> Result<Message, Error> { - use libquassel::HandshakeDeserialize; - - trace!(target: "handshakemessage", "Received bytes: {:x?}", buf); - match HandshakeMessage::parse(buf) { - Ok((_size, res)) => { - // info!("{}: {:#?}", direction, res); - - match res { - HandshakeMessage::SessionInit(_) => *state = ClientState::Connected, - HandshakeMessage::ClientLogin(_) => *state = ClientState::Connected, - _ => {} - } - - return Ok(Message::Handshake(res)); - } - Err(e) => bail!("failed to parse handshake message {}", e), - } - } - - async fn handle_message( - buf: &[u8], - direction: Direction, - ctx: ExtEventSink, - ) -> Result<Message, Error> { - use libquassel::deserialize::*; - trace!(target: "message", "Received bytes: {:x?}", buf); - - match message::Message::parse(buf) { - Ok((_size, res)) => { - let re = res.clone(); - - #[allow(unused_variables)] - match res { - message::Message::SyncMessage(msg) => ctx - .submit_command( - command::SYNCMESSAGE, - SingleUse::new((direction, msg)), - Target::Global, - ) - .unwrap(), - message::Message::RpcCall(msg) => (), - message::Message::InitRequest(msg) => debug!("Got InitRequest: {:#?}", msg), - message::Message::InitData(msg) => ctx - .submit_command( - command::INITDATA, - SingleUse::new((direction, msg)), - Target::Global, - ) - .unwrap(), - message::Message::HeartBeat(msg) => (), - message::Message::HeartBeatReply(msg) => (), - } - - return Ok(Message::SignalProxy(re)); - } - Err(e) => { - bail!("failed to parse message {}", e); - } - } - } -} - -impl Default for Server { - fn default() -> Self { - Server { - server_name: String::default(), - listen_port: 4243, - listen_host: String::from("localhost"), - settings: ServerSettings::default(), - } - } -} - -impl std::fmt::Debug for Server { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let mut fmt = f.debug_struct("Server"); - fmt.field("settings", &self.settings); - fmt.field("name", &self.server_name).finish() - } -} - -pub struct ServerWidget {} - -impl ServerWidget { - pub fn new() -> ControllerHost<impl Widget<Server>, ServerWidget> { - let layout = Flex::column() - .with_child(Label::new("Connect").align_left()) - .with_spacer(crate::SPACING) - .with_child( - TextBox::new() - .with_placeholder("Server Name") - .expand_width() - .lens(Server::server_name), - ) - .with_spacer(crate::SPACING) - .with_child( - Container::new( - Flex::column() - .with_child( - Flex::row() - .with_flex_child( - TextBox::new() - .with_placeholder("Host") - .expand_width() - .lens(ServerSettings::host), - 2.0, - ) - .with_spacer(crate::SPACING) - .with_flex_child( - TextBox::new() - .with_formatter(formatter::U16Formatter) - .lens(ServerSettings::port), - 1.0, - ) - .expand_width(), - ) - .with_spacer(crate::SPACING) - .with_child( - Flex::row() - .with_child(Checkbox::new("TLS").lens(ServerSettings::tls)) - .with_flex_spacer(1.0) - .with_child( - Checkbox::new("Compression").lens(ServerSettings::compression), - ), - ) - .with_spacer(crate::SPACING * 2.0) - .with_child(Label::new("Login").align_left()) - .with_spacer(crate::SPACING) - .with_child( - TextBox::new() - .with_placeholder("Username") - .expand_width() - .lens(ServerSettings::username), - ) - .with_spacer(crate::SPACING) - .with_child( - TextBox::new() - .with_placeholder("Password") - .expand_width() - .lens(ServerSettings::password), - ), - ) - .lens(Server::settings), - ) - .with_spacer(crate::SPACING) - .with_child(Label::new("Listen").align_left()) - .with_spacer(crate::SPACING) - .with_child( - Flex::row() - .with_flex_child( - TextBox::new() - .with_placeholder("Address") - .expand_width() - .lens(Server::listen_host), - 2.0, - ) - .with_spacer(crate::SPACING) - .with_flex_child( - TextBox::new() - .with_placeholder("Port") - .with_formatter(formatter::U16Formatter) - .lens(Server::listen_port), - 1.0, - ) - .expand_width(), - ) - .with_spacer(crate::SPACING) - .with_child( - Button::new("Connect") - .on_click(move |ctx, _, _| { - debug!("connect button pressed, sending command"); - ctx.submit_command(Command::new( - command::CONNECT, - (), - druid::Target::Global, - )) - }) - .align_right(), - ); - - let widget = Align::centered(layout); - - ControllerHost::new(widget, ServerWidget {}) - } -} - -impl<T, W: Widget<T>> Controller<T, W> for ServerWidget {} diff --git a/examples/statetracker/src/widgets/aliasmanager.rs b/examples/statetracker/src/widgets/aliasmanager.rs deleted file mode 100644 index afa8c91..0000000 --- a/examples/statetracker/src/widgets/aliasmanager.rs +++ /dev/null @@ -1,91 +0,0 @@ -use std::sync::Arc; - -use druid::widget::{Align, Label}; -use druid::{lens, Lens, Point, WidgetPod}; -use druid::{widget::Flex, Widget}; - -use libquassel::message::objects::AliasManager; - -pub struct AliasManagerWidget { - inner: WidgetPod<Arc<AliasManager>, Box<dyn Widget<Arc<AliasManager>>>>, -} - -impl AliasManagerWidget { - pub fn new() -> Self { - let widget = WidgetPod::new(Flex::column()).boxed(); - - AliasManagerWidget { inner: widget } - } -} - -impl Widget<Arc<AliasManager>> for AliasManagerWidget { - fn event( - &mut self, - ctx: &mut druid::EventCtx, - event: &druid::Event, - data: &mut Arc<AliasManager>, - env: &druid::Env, - ) { - self.inner.event(ctx, event, data, env) - } - - fn lifecycle( - &mut self, - ctx: &mut druid::LifeCycleCtx, - event: &druid::LifeCycle, - data: &Arc<AliasManager>, - env: &druid::Env, - ) { - self.inner.lifecycle(ctx, event, data, env) - } - - fn update( - &mut self, - ctx: &mut druid::UpdateCtx, - _old_data: &Arc<AliasManager>, - data: &Arc<AliasManager>, - _env: &druid::Env, - ) { - let aliases = lens!(AliasManager, aliases); - - let mut names: Flex<Arc<AliasManager>> = Flex::column(); - let mut sign: Flex<Arc<AliasManager>> = Flex::column(); - let mut expansions: Flex<Arc<AliasManager>> = Flex::column(); - - // TODO optimise this whole thing - aliases.with(data, |aliases| { - for alias in aliases { - names.add_child(Align::right(Label::new(alias.name.clone()))); - sign.add_child(Label::new("=>")); - expansions.add_child(Align::left(Label::new(alias.expansion.clone()))); - } - }); - - let widget: Flex<Arc<AliasManager>> = Flex::row() - .with_flex_child(names, 1.0) - .with_flex_child(sign, 1.0) - .with_flex_child(expansions, 1.0); - - self.inner = WidgetPod::new(widget).boxed(); - - ctx.children_changed(); - ctx.request_layout(); - ctx.request_paint(); - } - - fn layout( - &mut self, - ctx: &mut druid::LayoutCtx, - bc: &druid::BoxConstraints, - data: &Arc<AliasManager>, - env: &druid::Env, - ) -> druid::Size { - let size = self.inner.layout(ctx, bc, data, env); - self.inner.set_origin(ctx, data, env, Point::ZERO); - return size; - } - - fn paint(&mut self, ctx: &mut druid::PaintCtx, data: &Arc<AliasManager>, env: &druid::Env) { - self.inner.paint(ctx, data, env) - } -} diff --git a/examples/statetracker/src/widgets/bufferview.rs b/examples/statetracker/src/widgets/bufferview.rs deleted file mode 100644 index e5384e2..0000000 --- a/examples/statetracker/src/widgets/bufferview.rs +++ /dev/null @@ -1,105 +0,0 @@ -use std::sync::Arc; - -use druid::widget::{Label}; -use druid::{lens, Lens, Point, WidgetPod}; -use druid::{widget::Flex, Widget}; - -use libquassel::message::objects::BufferViewManager; - -pub struct BufferViewWidget { - inner: WidgetPod<Arc<BufferViewManager>, Box<dyn Widget<Arc<BufferViewManager>>>>, -} - -impl BufferViewWidget { - pub fn new() -> Self { - let widget = WidgetPod::new(Flex::column()).boxed(); - - BufferViewWidget { inner: widget } - } -} - -impl Widget<Arc<BufferViewManager>> for BufferViewWidget { - fn event( - &mut self, - ctx: &mut druid::EventCtx, - event: &druid::Event, - data: &mut Arc<BufferViewManager>, - env: &druid::Env, - ) { - self.inner.event(ctx, event, data, env) - } - - fn lifecycle( - &mut self, - ctx: &mut druid::LifeCycleCtx, - event: &druid::LifeCycle, - data: &Arc<BufferViewManager>, - env: &druid::Env, - ) { - self.inner.lifecycle(ctx, event, data, env) - } - - fn update( - &mut self, - ctx: &mut druid::UpdateCtx, - _old_data: &Arc<BufferViewManager>, - data: &Arc<BufferViewManager>, - _env: &druid::Env, - ) { - let buffer_view_configs = lens!(BufferViewManager, buffer_view_configs); - - let mut names: Flex<Arc<BufferViewManager>> = Flex::row(); - let mut buffers: Flex<Arc<BufferViewManager>> = Flex::row(); - let mut removed_buffers: Flex<Arc<BufferViewManager>> = Flex::row(); - let mut temporarily_removed_buffers: Flex<Arc<BufferViewManager>> = Flex::row(); - // let mut expansions: Flex<Arc<BufferViewManager>> = Flex::column(); - - // TODO optimise this whole thing - buffer_view_configs.with(data, |configs| { - for (_id, config) in configs { - names.add_child(Label::new(config.buffer_view_name.clone())); - buffers.add_child(Label::new(format!("{:?}", config.buffers))); - removed_buffers.add_child(Label::new(format!("{:?}", config.removed_buffers))); - temporarily_removed_buffers.add_child(Label::new(format!( - "{:?}", - config.temporarily_removed_buffers - ))); - // expansions.add_child(Align::left(Label::new(alias.expansion.clone()))); - } - }); - - let widget: Flex<Arc<BufferViewManager>> = Flex::column() - .with_flex_child(names, 1.0) - .with_flex_child(buffers, 1.0) - .with_flex_child(removed_buffers, 1.0) - .with_flex_child(temporarily_removed_buffers, 1.0); - // .with_flex_child(expansions, 1.0); - - self.inner = WidgetPod::new(widget).boxed(); - - ctx.children_changed(); - ctx.request_layout(); - ctx.request_paint(); - } - - fn layout( - &mut self, - ctx: &mut druid::LayoutCtx, - bc: &druid::BoxConstraints, - data: &Arc<BufferViewManager>, - env: &druid::Env, - ) -> druid::Size { - let size = self.inner.layout(ctx, bc, data, env); - self.inner.set_origin(ctx, data, env, Point::ZERO); - return size; - } - - fn paint( - &mut self, - ctx: &mut druid::PaintCtx, - data: &Arc<BufferViewManager>, - env: &druid::Env, - ) { - self.inner.paint(ctx, data, env) - } -} diff --git a/examples/statetracker/src/widgets/mod.rs b/examples/statetracker/src/widgets/mod.rs deleted file mode 100644 index c837e5d..0000000 --- a/examples/statetracker/src/widgets/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -mod aliasmanager; -mod bufferview; - -pub use aliasmanager::*; -pub use bufferview::*; |
