sway-launchpad

A small rust script to switch sway workspaces using a Launchpad S
git clone git://archive.git.mtrnord.blog/MTRNord/sway-launchpad.git
Log | Files | Refs | LICENSE

commit ca9fd52ee3a29fcec3b7396a8750b7374df439a2
parent d23acdce232c36488f51095640faf28ea9406678
Author: MTRNord <mtrnord1@gmail.com>
Date:   Thu, 17 Dec 2020 22:54:50 +0100

feat: Prepare Matrix and Layers

Took 2 hours 28 minutes

Diffstat:
M.idea/LaunchpadSwayControler.iml | 1+
M.idea/workspace.xml | 60++++++++++++++++++++++++++++++++++++++++++++++++++++--------
MCargo.lock | 2332+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
MCargo.toml | 3++-
ARequirements.md | 7+++++++
Mlaunchpad_sway_controler/Cargo.toml | 5++++-
Mlaunchpad_sway_controler/src/main.rs | 70++++++++++++++--------------------------------------------------------
Alaunchpad_sway_controler/src/mappings/mod.rs | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlaunchpad_sway_controler/src/plugin_actions/mod.rs | 46++++++++++++++++++++++++++++++++++++++++++++++
Mlaunchpad_sway_controler/src/sway/mod.rs | 20+++++++++-----------
Alaunchpad_sway_controler/src/utils/globals.rs | 6++++++
Alaunchpad_sway_controler/src/utils/mod.rs | 30++++++++++++++++++++++++++++++
Alaunchpad_sway_controler/src/utils/numbers.rs | 123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Alsc_matrix_presets/Cargo.toml | 19+++++++++++++++++++
Alsc_matrix_presets/src/main.rs | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
15 files changed, 2605 insertions(+), 248 deletions(-)

diff --git a/.idea/LaunchpadSwayControler.iml b/.idea/LaunchpadSwayControler.iml @@ -5,6 +5,7 @@ <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/launchpad_sway_controler/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/lsc_example_plugin/src" isTestSource="false" /> + <sourceFolder url="file://$MODULE_DIR$/lsc_matrix_presets/src" isTestSource="false" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="inheritedJdk" /> diff --git a/.idea/workspace.xml b/.idea/workspace.xml @@ -6,8 +6,20 @@ </component> <component name="ChangeListManager"> <list default="true" id="cfc5721f-cc06-4df2-8555-3745919e4c56" name="Default Changelist" comment=""> + <change afterPath="$PROJECT_DIR$/Requirements.md" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/mappings/mod.rs" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/utils/globals.rs" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/utils/mod.rs" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/utils/numbers.rs" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/lsc_matrix_presets/Cargo.toml" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/lsc_matrix_presets/src/main.rs" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/LaunchpadSwayControler.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/LaunchpadSwayControler.iml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Cargo.lock" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.lock" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.toml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/Cargo.toml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/main.rs" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/src/plugin_actions/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/plugin_actions/mod.rs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/src/sway/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/sway/mod.rs" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> @@ -16,7 +28,7 @@ <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="DarkyenusTimeTracker"> - <option name="totalTimeSeconds" value="4498" /> + <option name="totalTimeSeconds" value="13297" /> <option name="idleThresholdMs" value="60000" /> <option name="autoCountIdleSeconds" value="0" /> <option name="stopWhenIdleRatherThanPausing" value="true" /> @@ -42,33 +54,47 @@ <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="org.rust.cargo.project.model.PROJECT_DISCOVERY" value="true" /> <property name="project.structure.last.edited" value="Project" /> <property name="project.structure.proportion" value="0.0" /> <property name="project.structure.side.proportion" value="0.2" /> <property name="settings.editor.selected.configurable" value="language.rust.rustfmt" /> </component> + <component name="RecentsManager"> + <key name="CopyFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$" /> + </key> + <key name="MoveFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$/launchpad_sway_controler/src/sway" /> + <recent name="$PROJECT_DIR$/launchpad_sway_controler/src/utils" /> + </key> + </component> <component name="RunManager" selected="Cargo.Run"> <configuration name="Run lsc_example_plugin" type="CargoCommandRunConfiguration" factoryName="Cargo Command" temporary="true"> - <option name="channel" value="DEFAULT" /> <option name="command" value="run --package lsc_example_plugin --bin lsc_example_plugin" /> + <option name="workingDirectory" value="file://$PROJECT_DIR$/lsc_example_plugin" /> + <option name="channel" value="DEFAULT" /> <option name="allFeatures" value="false" /> <option name="emulateTerminal" value="false" /> <option name="backtrace" value="SHORT" /> - <option name="workingDirectory" value="file://$PROJECT_DIR$/lsc_example_plugin" /> <envs /> + <option name="isRedirectInput" value="false" /> + <option name="redirectInputPath" value="" /> <method v="2"> <option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" /> </method> </configuration> <configuration name="Run" type="CargoCommandRunConfiguration" factoryName="Cargo Command" nameIsGenerated="true"> - <option name="channel" value="DEFAULT" /> <option name="command" value="run -p launchpad_sway_controler --release" /> + <option name="workingDirectory" value="file://$PROJECT_DIR$" /> + <option name="channel" value="DEFAULT" /> <option name="allFeatures" value="false" /> <option name="emulateTerminal" value="false" /> <option name="backtrace" value="SHORT" /> - <option name="workingDirectory" value="file://$PROJECT_DIR$" /> <envs /> + <option name="isRedirectInput" value="false" /> + <option name="redirectInputPath" value="" /> <method v="2"> <option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" /> </method> @@ -99,7 +125,17 @@ <updated>1607182424184</updated> <workItem from="1607182426972" duration="523000" /> <workItem from="1607182962786" duration="7425000" /> - <workItem from="1607203029545" duration="2954000" /> + <workItem from="1607203029545" duration="5407000" /> + <workItem from="1607288434655" duration="1399000" /> + <workItem from="1607705539184" duration="14000" /> + <workItem from="1607710292802" duration="1356000" /> + <workItem from="1607711840578" duration="461000" /> + <workItem from="1607712988488" duration="799000" /> + <workItem from="1607714679105" duration="1299000" /> + <workItem from="1607716945713" duration="4563000" /> + <workItem from="1607936162789" duration="15000" /> + <workItem from="1608061205255" duration="763000" /> + <workItem from="1608229569199" duration="7540000" /> </task> <task id="LOCAL-00001" summary="refactor: Use Workspace setup"> <created>1607182699156</created> @@ -122,14 +158,22 @@ <option name="project" value="LOCAL" /> <updated>1607188704601</updated> </task> - <option name="localTasksCounter" value="4" /> + <task id="LOCAL-00004" summary="fix: reset colors when moving away from known workspaces"> + <created>1607209625887</created> + <option name="number" value="00004" /> + <option name="presentableId" value="LOCAL-00004" /> + <option name="project" value="LOCAL" /> + <updated>1607209625887</updated> + </task> + <option name="localTasksCounter" value="5" /> <servers /> </component> <component name="VcsManagerConfiguration"> <MESSAGE value="refactor: Use Workspace setup" /> <MESSAGE value="feat: Add ability to have multiple actions beyond workspace managment" /> <MESSAGE value="fix: on reset also disable LEDs again" /> - <option name="LAST_COMMIT_MESSAGE" value="fix: on reset also disable LEDs again" /> + <MESSAGE value="fix: reset colors when moving away from known workspaces" /> + <option name="LAST_COMMIT_MESSAGE" value="fix: reset colors when moving away from known workspaces" /> </component> <component name="XSLT-Support.FileAssociations.UIState"> <expand /> diff --git a/Cargo.lock b/Cargo.lock @@ -16,6 +16,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" [[package]] +name = "aes-ctr" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c3b03608ea1c077228520a167cca2514dc7cd8100a81b30a2b38be985234e5" +dependencies = [ + "aes-soft", + "aesni", + "ctr", + "stream-cipher", +] + +[[package]] +name = "aes-soft" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6" +dependencies = [ + "block-cipher", + "byteorder", + "opaque-debug", +] + +[[package]] +name = "aesni" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6a4d655ae633a96d0acaf0fd7e76aafb8ca5732739bba37aac6f882c8fce656" +dependencies = [ + "block-cipher", + "opaque-debug", + "stream-cipher", +] + +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +dependencies = [ + "const-random", +] + +[[package]] +name = "aho-corasick" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +dependencies = [ + "memchr", +] + +[[package]] name = "alsa" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -43,10 +95,22 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "assign" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4af5687fe33aec5e70ef14caac5e0d363e335e5e5d6385fb75978d0c241b1d67" + +[[package]] name = "async-channel" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -74,7 +138,19 @@ dependencies = [ "polling", "vec-arena", "waker-fn", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "async-native-tls" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e9e7a929bd34c68a82d58a4de7f86fffdaf97fb2af850162a7bb19dd7269b33" +dependencies = [ + "native-tls", + "thiserror", + "tokio 0.2.24", + "url", ] [[package]] @@ -90,7 +166,28 @@ dependencies = [ "futures-lite", "once_cell", "signal-hook", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "async-stream" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -100,6 +197,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] +name = "async-trait" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281" +dependencies = [ + "autocfg", +] + +[[package]] name = "atomic-waker" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -126,12 +243,60 @@ dependencies = [ ] [[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] +name = "bitvec" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-cipher" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" +dependencies = [ + "generic-array", +] + +[[package]] name = "blocking" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -159,6 +324,12 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" [[package]] name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + +[[package]] +name = "bytes" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0dcbc35f504eb6fc275a6d20e4ebcda18cf50d40ba6fabff8c711fa16cb3b16" @@ -196,8 +367,30 @@ dependencies = [ "libc", "num-integer", "num-traits", - "time", - "winapi", + "serde", + "time 0.1.44", + "winapi 0.3.9", +] + +[[package]] +name = "cjson" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b601fb350e2fdbbd2ffb19aef2141fa90864d8fdca83d64466cb9bdb5694a7" +dependencies = [ + "itoa", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "cmake" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855" +dependencies = [ + "cc", ] [[package]] @@ -237,12 +430,60 @@ dependencies = [ ] [[package]] +name = "console_error_panic_hook" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211" +dependencies = [ + "cfg-if 0.1.10", + "wasm-bindgen", +] + +[[package]] +name = "const-random" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40" +dependencies = [ + "getrandom 0.2.0", + "lazy_static", + "proc-macro-hack", + "tiny-keccak", +] + +[[package]] +name = "const_fn" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826" + +[[package]] name = "core-foundation" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.2.3", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +dependencies = [ + "core-foundation-sys 0.8.2", "libc", ] @@ -256,15 +497,21 @@ dependencies = [ ] [[package]] +name = "core-foundation-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" + +[[package]] name = "coremidi" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99f92de5534f182bad5f91cad85611ab222cb6e237a0555e06c65a24936c3173" dependencies = [ - "core-foundation", - "core-foundation-sys", + "core-foundation 0.2.3", + "core-foundation-sys 0.2.3", "coremidi-sys", - "time", + "time 0.1.44", ] [[package]] @@ -273,151 +520,572 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07f05827cebb30dcd539ff1ac9bf6764f574a15fa147f8572f99d7617142f95e" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.2.3", ] [[package]] -name = "event-listener" -version = "2.5.1" +name = "cpuid-bool" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" +checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" [[package]] -name = "eyre" -version = "0.6.3" +name = "crossbeam-queue" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f29abf4740a4778632fe27a4f681ef5b7a6f659aeba3330ac66f48e20cfa3b7" +checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ - "indenter", - "once_cell", + "cfg-if 0.1.10", + "crossbeam-utils", + "maybe-uninit", ] [[package]] -name = "fastrand" -version = "1.4.0" +name = "crossbeam-utils" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "instant", + "autocfg", + "cfg-if 0.1.10", + "lazy_static", ] [[package]] -name = "futures-core" -version = "0.3.8" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "futures-io" -version = "0.3.8" +name = "crypto-mac" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" +checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" +dependencies = [ + "generic-array", + "subtle", +] [[package]] -name = "futures-lite" -version = "1.11.2" +name = "ctr" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6c079abfac3ab269e2927ec048dabc89d009ebfdda6b8ee86624f30c689658" +checksum = "cc03dee3a2843ac6eb4b5fb39cfcf4cb034d078555d1f4a0afbed418b822f3c2" dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.1.11", - "waker-fn", + "stream-cipher", ] [[package]] -name = "futures-macro" -version = "0.3.8" +name = "dashmap" +version = "3.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" +checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", + "ahash", + "cfg-if 0.1.10", + "num_cpus", ] [[package]] -name = "futures-task" -version = "0.3.8" +name = "digest" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "once_cell", + "generic-array", ] [[package]] -name = "futures-util" -version = "0.3.8" +name = "discard" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + +[[package]] +name = "displaydoc" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc2ab4d5a16117f9029e9a6b5e4e79f4c67f6519bc134210d4d4a04ba31f41b" dependencies = [ - "futures-core", - "futures-macro", - "futures-task", - "pin-project", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "generator" -version = "0.6.23" +name = "dotenv" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "encoding_rs" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283" dependencies = [ - "cc", - "libc", - "log", - "rustc_version", - "winapi", + "cfg-if 1.0.0", ] [[package]] -name = "gimli" -version = "0.23.0" +name = "event-listener" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" +checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" [[package]] -name = "heck" -version = "0.3.1" +name = "eyre" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +checksum = "5f29abf4740a4778632fe27a4f681ef5b7a6f659aeba3330ac66f48e20cfa3b7" dependencies = [ - "unicode-segmentation", + "indenter", + "once_cell", ] [[package]] -name = "hermit-abi" -version = "0.1.17" +name = "fastrand" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" dependencies = [ - "libc", + "instant", ] [[package]] -name = "indenter" -version = "0.3.0" +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 = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "funty" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" + +[[package]] +name = "futures" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" + +[[package]] +name = "futures-executor" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" + +[[package]] +name = "futures-lite" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6c079abfac3ab269e2927ec048dabc89d009ebfdda6b8ee86624f30c689658" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.1.11", + "waker-fn", +] + +[[package]] +name = "futures-locks" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c4e684ddb2d8a4db5ca8a02b35156da129674ba4412b6f528698d58c594954" +dependencies = [ + "futures", +] + +[[package]] +name = "futures-macro" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" + +[[package]] +name = "futures-task" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper", +] + +[[package]] +name = "futures-util" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project 1.0.2", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "generator" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc" +dependencies = [ + "cc", + "libc", + "log", + "rustc_version", + "winapi 0.3.9", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" + +[[package]] +name = "gloo-timers" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "h2" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio 0.2.24", + "tokio-util", + "tracing", + "tracing-futures", +] + +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" + +[[package]] +name = "heck" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" + +[[package]] +name = "hmac" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" +dependencies = [ + "crypto-mac", + "digest", +] + +[[package]] +name = "http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +dependencies = [ + "bytes 0.5.6", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +dependencies = [ + "bytes 0.5.6", + "http", +] + +[[package]] +name = "httparse" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + +[[package]] +name = "hyper" +version = "0.13.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" +dependencies = [ + "bytes 0.5.6", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project 1.0.2", + "socket2", + "tokio 0.2.24", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" +dependencies = [ + "bytes 0.5.6", + "hyper", + "native-tls", + "tokio 0.2.24", + "tokio-tls", +] + +[[package]] +name = "idna" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indenter" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0bd112d44d9d870a6819eb505d04dd92b5e4d94bb8c304924a0872ae7016fb5" [[package]] +name = "indexmap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] name = "instant" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ "cfg-if 1.0.0", + "js-sys", + "time 0.2.23", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", ] [[package]] +name = "ipnet" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" + +[[package]] name = "itoa" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -433,6 +1101,25 @@ dependencies = [ ] [[package]] +name = "js_int" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b96797f53235a1d6dc985f244a69de54b04c45b7e0e357a35c85a45a847d92f2" +dependencies = [ + "serde", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] name = "launchpad_sway_controler" version = "0.1.0" dependencies = [ @@ -440,9 +1127,11 @@ dependencies = [ "color-eyre", "futures-util", "midir", - "strum", + "once_cell", + "strum 0.20.0", "swayipc-async", - "tokio", + "thirtyfour", + "tokio 0.2.24", "tracing", "tracing-subscriber", ] @@ -454,12 +1143,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] +name = "lexical-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616" +dependencies = [ + "arrayvec", + "bitflags", + "cfg-if 0.1.10", + "ryu", + "static_assertions", +] + +[[package]] name = "libc" version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614" [[package]] +name = "libsqlite3-sys" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56d90181c2904c287e5390186be820e5ef311a3c62edebb7d6ca3d6a48ce041d" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] name = "lock_api" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -496,12 +1209,33 @@ version = "0.1.0" dependencies = [ "color-eyre", "futures-util", - "tokio", + "tokio 0.3.5", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "lsc_matrix_presets" +version = "0.1.0" +dependencies = [ + "async-trait", + "color-eyre", + "futures-util", + "matrix-sdk", + "matrix-sdk-common-macros", + "tokio 0.2.24", "tracing", "tracing-subscriber", + "url", ] [[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] name = "matchers" version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -511,6 +1245,110 @@ dependencies = [ ] [[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + +[[package]] +name = "matrix-sdk" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8f99180c99ccd74803565fb36098389198091ded#8f99180c99ccd74803565fb36098389198091ded" +dependencies = [ + "async-trait", + "dashmap", + "futures-timer", + "http", + "matrix-sdk-base", + "matrix-sdk-common", + "matrix-sdk-common-macros", + "mime", + "reqwest", + "serde_json", + "thiserror", + "tokio 0.2.24", + "tracing", + "tracing-futures", + "url", + "zeroize", +] + +[[package]] +name = "matrix-sdk-base" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8f99180c99ccd74803565fb36098389198091ded#8f99180c99ccd74803565fb36098389198091ded" +dependencies = [ + "async-trait", + "matrix-sdk-common", + "matrix-sdk-common-macros", + "matrix-sdk-crypto", + "serde", + "serde_json", + "thiserror", + "tokio 0.2.24", + "tracing", + "zeroize", +] + +[[package]] +name = "matrix-sdk-common" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8f99180c99ccd74803565fb36098389198091ded#8f99180c99ccd74803565fb36098389198091ded" +dependencies = [ + "assign", + "futures-locks", + "instant", + "js_int", + "ruma", + "tokio 0.2.24", + "uuid", +] + +[[package]] +name = "matrix-sdk-common-macros" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8f99180c99ccd74803565fb36098389198091ded#8f99180c99ccd74803565fb36098389198091ded" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "matrix-sdk-crypto" +version = "0.1.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=8f99180c99ccd74803565fb36098389198091ded#8f99180c99ccd74803565fb36098389198091ded" +dependencies = [ + "aes-ctr", + "async-trait", + "atomic", + "base64 0.13.0", + "byteorder", + "cjson", + "dashmap", + "getrandom 0.2.0", + "hmac", + "matrix-sdk-common", + "matrix-sdk-common-macros", + "olm-rs", + "pbkdf2", + "serde", + "serde_json", + "sha2", + "sqlx", + "thiserror", + "tracing", + "tracing-futures", + "url", + "zeroize", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] name = "memalloc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -537,7 +1375,23 @@ dependencies = [ "nix", "wasm-bindgen", "web-sys", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mime_guess" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" +dependencies = [ + "mime", + "unicase", ] [[package]] @@ -551,16 +1405,70 @@ dependencies = [ ] [[package]] -name = "mio" -version = "0.7.6" +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.2", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f33bc887064ef1fd66020c9adfc45bb9f33d75a42096c81e7c56c65b75dd1a8b" +dependencies = [ + "libc", + "log", + "miow 0.3.6", + "ntapi", + "winapi 0.3.9", +] + +[[package]] +name = "mio-named-pipes" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +dependencies = [ + "log", + "mio 0.6.23", + "miow 0.3.6", + "winapi 0.3.9", +] + +[[package]] +name = "mio-uds" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +dependencies = [ + "iovec", + "libc", + "mio 0.6.23", +] + +[[package]] +name = "miow" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33bc887064ef1fd66020c9adfc45bb9f33d75a42096c81e7c56c65b75dd1a8b" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi", + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", ] [[package]] @@ -570,7 +1478,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" dependencies = [ "socket2", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "native-tls" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] @@ -580,7 +1506,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" dependencies = [ "libc", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", ] [[package]] @@ -597,12 +1534,24 @@ dependencies = [ ] [[package]] +name = "nom" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0" +dependencies = [ + "bitvec", + "lexical-core", + "memchr", + "version_check", +] + +[[package]] name = "ntapi" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -641,12 +1590,73 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" [[package]] +name = "olm-rs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daab4abdd728e5e77ec15888fc12688c0b821c81fca621f1bb28dbe489cbc404" +dependencies = [ + "getrandom 0.2.0", + "olm-sys", + "serde", + "serde_json", + "zeroize", +] + +[[package]] +name = "olm-sys" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0823939cee8b6f39ed0e39d8abf98919099f999ebef3eae2c67d9cd2e93ea008" +dependencies = [ + "cmake", +] + +[[package]] name = "once_cell" version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" [[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl" +version = "0.10.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d008f51b1acffa0d3450a68606e6a51c123012edaacb0f4e1426bd978869187" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "lazy_static", + "libc", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" + +[[package]] +name = "openssl-sys" +version = "0.9.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] name = "owo-colors" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -680,7 +1690,31 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "pbkdf2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170d73bf11f39b4ce1809aabc95bf5c33564cdc16fc3200ddda17a5f6e5e48b" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pin-project" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +dependencies = [ + "pin-project-internal 0.4.27", ] [[package]] @@ -689,7 +1723,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7" dependencies = [ - "pin-project-internal", + "pin-project-internal 1.0.2", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -704,104 +1749,402 @@ dependencies = [ ] [[package]] -name = "pin-project-lite" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" +name = "pin-project-lite" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" + +[[package]] +name = "pin-project-lite" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" + +[[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.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "polling" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "log", + "wepoll-sys", + "winapi 0.3.9", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro-nested" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + +[[package]] +name = "proc-macro2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.15", + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "regex" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", +] + +[[package]] +name = "regex-automata" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" +dependencies = [ + "byteorder", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "reqwest" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb15d6255c792356a0f578d8a645c677904dc02e862bebe2ecc18e0c01b9a0ce" +dependencies = [ + "base64 0.13.0", + "bytes 0.5.6", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "mime_guess", + "native-tls", + "percent-encoding", + "pin-project-lite 0.2.0", + "serde", + "serde_json", + "serde_urlencoded", + "tokio 0.2.24", + "tokio-tls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test", + "web-sys", + "winreg", +] + +[[package]] +name = "ruma" +version = "0.0.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "assign", + "js_int", + "ruma-api", + "ruma-appservice-api", + "ruma-client-api", + "ruma-common", + "ruma-events", + "ruma-federation-api", + "ruma-identifiers", + "ruma-serde", +] + +[[package]] +name = "ruma-api" +version = "0.17.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "http", + "percent-encoding", + "ruma-api-macros", + "ruma-common", + "ruma-identifiers", + "ruma-serde", + "serde", + "serde_json", + "strum 0.19.5", + "thiserror", +] + +[[package]] +name = "ruma-api-macros" +version = "0.17.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ruma-appservice-api" +version = "0.2.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "ruma-api", + "ruma-common", + "ruma-events", + "ruma-identifiers", + "serde", + "serde_json", +] [[package]] -name = "pin-project-lite" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c" +name = "ruma-client-api" +version = "0.10.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "assign", + "http", + "js_int", + "maplit", + "percent-encoding", + "ruma-api", + "ruma-common", + "ruma-events", + "ruma-identifiers", + "ruma-serde", + "serde", + "serde_json", + "strum 0.19.5", +] [[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +name = "ruma-common" +version = "0.2.0" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "js_int", + "ruma-common-macros", + "ruma-identifiers", + "ruma-serde", + "serde", + "serde_json", + "strum 0.19.5", +] [[package]] -name = "pkg-config" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +name = "ruma-common-macros" +version = "0.2.0" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "polling" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +name = "ruma-events" +version = "0.22.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" dependencies = [ - "cfg-if 0.1.10", - "libc", - "log", - "wepoll-sys", - "winapi", + "js_int", + "ruma-common", + "ruma-events-macros", + "ruma-identifiers", + "ruma-serde", + "serde", + "serde_json", + "strum 0.19.5", ] [[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" +name = "ruma-events-macros" +version = "0.22.0-alpha.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "proc-macro-nested" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +name = "ruma-federation-api" +version = "0.0.3" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" +dependencies = [ + "js_int", + "ruma-api", + "ruma-common", + "ruma-events", + "ruma-identifiers", + "ruma-serde", + "serde", + "serde_json", +] [[package]] -name = "proc-macro2" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +name = "ruma-identifiers" +version = "0.17.4" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" dependencies = [ - "unicode-xid", + "ruma-identifiers-macros", + "ruma-identifiers-validation", + "serde", + "strum 0.19.5", ] [[package]] -name = "quote" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +name = "ruma-identifiers-macros" +version = "0.17.4" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" dependencies = [ "proc-macro2", + "quote", + "ruma-identifiers-validation", + "syn", ] [[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "regex" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" +name = "ruma-identifiers-validation" +version = "0.1.1" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" dependencies = [ - "regex-syntax", + "serde", + "strum 0.19.5", ] [[package]] -name = "regex-automata" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" +name = "ruma-serde" +version = "0.2.3" +source = "git+https://github.com/ruma/ruma?rev=50eb700571480d1440e15a387d10f98be8abab59#50eb700571480d1440e15a387d10f98be8abab59" dependencies = [ - "byteorder", - "regex-syntax", + "form_urlencoded", + "itoa", + "js_int", + "serde", + "serde_json", ] [[package]] -name = "regex-syntax" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" - -[[package]] name = "rustc-demangle" version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -823,6 +2166,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" [[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] name = "scoped-tls" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -835,6 +2188,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] +name = "security-framework" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" +dependencies = [ + "bitflags", + "core-foundation 0.9.1", + "core-foundation-sys 0.8.2", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" +dependencies = [ + "core-foundation-sys 0.8.2", + "libc", +] + +[[package]] name = "semver" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -850,6 +2226,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] name = "serde" version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -875,12 +2257,55 @@ version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779" dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +dependencies = [ + "form_urlencoded", "itoa", "ryu", "serde", ] [[package]] +name = "sha1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" + +[[package]] +name = "sha2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" +dependencies = [ + "block-buffer", + "cfg-if 1.0.0", + "cpuid-bool", + "digest", + "opaque-debug", +] + +[[package]] name = "sharded-slab" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -930,7 +2355,157 @@ dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "sqlformat" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74c70f0235b9925cbb106c52af1a28b5ea4885a8b851e328b8562e257a389c2d" +dependencies = [ + "lazy_static", + "maplit", + "nom", + "regex", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8974cacd80085fbe49e778708d660dec6fb351604dc34c3905b26efb2803b038" +dependencies = [ + "sqlx-core", + "sqlx-macros", +] + +[[package]] +name = "sqlx-core" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ac5a436f941c42eac509471a730df5c3c58e1450e68cd39afedbd948206273" +dependencies = [ + "async-native-tls", + "async-stream", + "bitflags", + "byteorder", + "crossbeam-queue", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-util", + "hex", + "libc", + "libsqlite3-sys", + "log", + "memchr", + "percent-encoding", + "sqlformat", + "tokio 0.2.24", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de2ae78b783af5922d811b14665a5a3755e531c3087bb805cf24cf71f15e6780" +dependencies = [ + "dotenv", + "futures", + "heck", + "lazy_static", + "proc-macro2", + "quote", + "sqlx-core", + "syn", + "tokio 0.2.24", + "url", +] + +[[package]] +name = "standback" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8" +dependencies = [ + "version_check", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version", + "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 = "stream-cipher" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" +dependencies = [ + "block-cipher", + "generic-array", +] + +[[package]] +name = "strum" +version = "0.19.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b89a286a7e3b5720b9a477b23253bc50debac207c8d21505f8e70b36792f11b5" +dependencies = [ + "strum_macros 0.19.4", ] [[package]] @@ -939,7 +2514,19 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" dependencies = [ - "strum_macros", + "strum_macros 0.20.1", +] + +[[package]] +name = "strum_macros" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e61bb0be289045cb80bfce000512e32d09f8337e54c186725da381377ad1f8d5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -955,6 +2542,12 @@ dependencies = [ ] [[package]] +name = "subtle" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" + +[[package]] name = "swayipc-async" version = "2.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -991,6 +2584,59 @@ dependencies = [ ] [[package]] +name = "synstructure" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "tap" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" + +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "thirtyfour" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b53af2ed05f53cad3489dd46988f3b108f8aa50221abffa1ef5c7eb3cd41139" +dependencies = [ + "async-trait", + "base64 0.12.3", + "chrono", + "displaydoc", + "futures", + "log", + "reqwest", + "serde", + "serde_json", + "serde_repr", + "thiserror", + "tokio 0.2.24", + "urlparse", +] + +[[package]] name = "thiserror" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1026,8 +2672,94 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", - "wasi", - "winapi", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi 0.3.9", +] + +[[package]] +name = "time" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b" +dependencies = [ + "const_fn", + "libc", + "standback", + "stdweb", + "time-macros", + "version_check", + "winapi 0.3.9", +] + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "standback", + "syn", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "iovec", + "lazy_static", + "libc", + "memchr", + "mio 0.6.23", + "mio-named-pipes", + "mio-uds", + "num_cpus", + "pin-project-lite 0.1.11", + "signal-hook-registry", + "slab", + "tokio-macros 0.2.6", + "winapi 0.3.9", ] [[package]] @@ -1037,19 +2769,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a12a3eb39ee2c231be64487f1fcbe726c8f2514876a55480a5ab8559fc374252" dependencies = [ "autocfg", - "bytes", + "bytes 0.6.0", "futures-core", "lazy_static", "libc", "memchr", - "mio", + "mio 0.7.6", "num_cpus", "parking_lot", "pin-project-lite 0.2.0", "signal-hook-registry", "slab", - "tokio-macros", - "winapi", + "tokio-macros 0.3.1", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1064,12 +2807,52 @@ dependencies = [ ] [[package]] +name = "tokio-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343" +dependencies = [ + "native-tls", + "tokio 0.2.24", +] + +[[package]] +name = "tokio-util" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +dependencies = [ + "bytes 0.5.6", + "futures-core", + "futures-sink", + "log", + "pin-project-lite 0.1.11", + "tokio 0.2.24", +] + +[[package]] +name = "toml" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" + +[[package]] name = "tracing" version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" dependencies = [ "cfg-if 1.0.0", + "log", "pin-project-lite 0.2.0", "tracing-attributes", "tracing-core", @@ -1106,6 +2889,16 @@ dependencies = [ ] [[package]] +name = "tracing-futures" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +dependencies = [ + "pin-project 0.4.27", + "tracing", +] + +[[package]] name = "tracing-log" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1149,6 +2942,45 @@ dependencies = [ ] [[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "typenum" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +dependencies = [ + "matches", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +dependencies = [ + "tinyvec", +] + +[[package]] name = "unicode-segmentation" version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1161,12 +2993,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "url" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "urlparse" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "110352d4e9076c67839003c7788d8604e24dcded13e0b375af3efaa8cf468517" + +[[package]] +name = "uuid" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" +dependencies = [ + "rand", + "serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" + +[[package]] name = "vec-arena" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" [[package]] +name = "version_check" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + +[[package]] name = "void" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1179,6 +3057,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1191,6 +3085,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" dependencies = [ "cfg-if 1.0.0", + "serde", + "serde_json", "wasm-bindgen-macro", ] @@ -1210,6 +3106,18 @@ dependencies = [ ] [[package]] +name = "wasm-bindgen-futures" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] name = "wasm-bindgen-macro" version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1239,6 +3147,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" [[package]] +name = "wasm-bindgen-test" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0355fa0c1f9b792a09b6dcb6a8be24d51e71e6d74972f9eb4a44c4c004d24a25" +dependencies = [ + "console_error_panic_hook", + "js-sys", + "scoped-tls", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27e07b46b98024c2ba2f9e83a10c2ef0515f057f2da299c1762a2017de80438b" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] name = "web-sys" version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1259,6 +3191,12 @@ dependencies = [ [[package]] name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" @@ -1268,6 +3206,12 @@ dependencies = [ ] [[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1278,3 +3222,49 @@ 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 = "winreg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "zeroize" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] diff --git a/Cargo.toml b/Cargo.toml @@ -1,7 +1,8 @@ [workspace] members = [ "launchpad_sway_controler", - "lsc_example_plugin" + "lsc_example_plugin", + "lsc_matrix_presets" ] [profile.dev.package.backtrace] diff --git a/Requirements.md b/Requirements.md @@ -0,0 +1,6 @@ +# Requirements + +## Browser Control + +* Requires selenium +* Requires selenium drivers to be installed +\ No newline at end of file diff --git a/launchpad_sway_controler/Cargo.toml b/launchpad_sway_controler/Cargo.toml @@ -9,10 +9,12 @@ edition = "2018" [dependencies] midir = "0.7" swayipc-async = "2.0.0-alpha.1" -tokio = { version = "0.3.2", features = ["full"] } +tokio = { version = "0.2", features = ["full"] } #TODO Update blocked by thirtyfour futures-util = "0.3.7" color-eyre = "0.5" alsa = "0.4.3" strum = { version = "0.20", features = ["derive"] } tracing = "0.1" tracing-subscriber = "0.2" +thirtyfour = "0.21" +once_cell = "1.4.1" +\ No newline at end of file diff --git a/launchpad_sway_controler/src/main.rs b/launchpad_sway_controler/src/main.rs @@ -1,68 +1,23 @@ +use crate::mappings::LaunchpadMapping; use crate::plugin_actions::PluginActions; use crate::sway::{get_workspaces, listen_for_workspace_changes}; +use crate::utils::globals::CURRENT_WORKSPACE; use color_eyre::Result; use midir::{Ignore, MidiInput, MidiOutputConnection}; use std::convert::{TryFrom, TryInto}; use std::env; use std::io::stdin; use std::process::exit; -use strum::EnumIter; +use std::sync::atomic::Ordering; use strum::IntoEnumIterator; use swayipc_async::Connection; use tokio::runtime::Runtime; use tracing::*; +mod mappings; mod plugin_actions; mod sway; - -#[non_exhaustive] -#[derive(Debug, Copy, Clone, EnumIter)] -pub enum LaunchpadMapping { - Firefox = 119, - Chats = 118, - Email = 117, - Coding = 116, - Steam = 115, - Games = 114, - Youtube = 113, - Spotify = 112, - Test = 0, -} - -impl Into<PluginActions<'_>> for LaunchpadMapping { - fn into(self) -> PluginActions<'static> { - match self { - LaunchpadMapping::Firefox => PluginActions::SwayWorkspace("1:\u{e007}"), - LaunchpadMapping::Chats => PluginActions::SwayWorkspace("2:\u{f086}"), - LaunchpadMapping::Email => PluginActions::SwayWorkspace("3:\u{f0e0}"), - LaunchpadMapping::Coding => PluginActions::SwayWorkspace("5:\u{f1c9}"), - LaunchpadMapping::Steam => PluginActions::SwayWorkspace("11:\u{f1b6}"), - LaunchpadMapping::Games => PluginActions::SwayWorkspace("12:\u{f11b}"), - LaunchpadMapping::Youtube => PluginActions::SwayWorkspace("13:\u{f167}"), - LaunchpadMapping::Spotify => PluginActions::SwayWorkspace("42:\u{f001}"), - LaunchpadMapping::Test => PluginActions::ExamplePlugin, - } - } -} - -impl TryFrom<i32> for LaunchpadMapping { - type Error = (); - - fn try_from(input: i32) -> Result<LaunchpadMapping, Self::Error> { - match input { - 119 => Ok(LaunchpadMapping::Firefox), - 118 => Ok(LaunchpadMapping::Chats), - 117 => Ok(LaunchpadMapping::Email), - 116 => Ok(LaunchpadMapping::Coding), - 115 => Ok(LaunchpadMapping::Steam), - 114 => Ok(LaunchpadMapping::Games), - 113 => Ok(LaunchpadMapping::Youtube), - 112 => Ok(LaunchpadMapping::Spotify), - 0 => Ok(LaunchpadMapping::Test), - _ => Err(()), - } - } -} +mod utils; fn reset_colors(conn_out: &mut MidiOutputConnection) { conn_out.send(&[176, 0, 0]).unwrap(); @@ -71,12 +26,19 @@ fn reset_colors(conn_out: &mut MidiOutputConnection) { .send(&[144, (value as i32).try_into().unwrap(), 15]) .unwrap(); } + if let Ok(workspace) = + sway::WorkspaceLaunchpadMapping::try_from(CURRENT_WORKSPACE.load(Ordering::SeqCst) as i32) + { + conn_out + .send(&[144, (workspace as i32).try_into().unwrap(), 28]) + .unwrap(); + } } #[tokio::main] async fn main() -> Result<()> { color_eyre::install()?; - if let Err(_) = env::var("RUST_LOG") { + if env::var("RUST_LOG").is_err() { env::set_var("RUST_LOG", "INFO"); } tracing_subscriber::fmt::init(); @@ -94,17 +56,13 @@ async fn main() -> Result<()> { midi_in.ignore(Ignore::None); let midi_in_ports = midi_in.ports(); - /*for (i, p) in midi_in_ports.iter().enumerate() { - println!("{}: {}", i, midi_in.port_name(p)?); - // TODO get by name - }*/ let in_port = midi_in_ports.get(1).unwrap(); info!("Opening connections"); // Create the runtime - let rt = Runtime::new()?; + let mut rt = Runtime::new()?; // One could get the log back here out of the error let conn_in = midi_in diff --git a/launchpad_sway_controler/src/mappings/mod.rs b/launchpad_sway_controler/src/mappings/mod.rs @@ -0,0 +1,80 @@ +use crate::plugin_actions::PluginActions; +use crate::utils::globals::PRESELECTED_LAYER_NUMBER; +use std::convert::TryFrom; +use std::sync::atomic::Ordering; +use strum::EnumIter; + +// TODO make array for layers +#[non_exhaustive] +#[derive(Debug, Copy, Clone, EnumIter)] +pub enum LaunchpadMapping { + Back = 120, + Firefox = 119, + Chats = 118, + Email = 117, + Coding = 116, + Steam = 115, + Games = 114, + Youtube = 113, + Spotify = 112, + Test = 0, + FirefoxWebdriver = 1, + IncreaseLayer = 8, + DecreaseLayer = 24, + SelectLayer = 40, +} + +impl Into<PluginActions<'_>> for LaunchpadMapping { + fn into(self) -> PluginActions<'static> { + match self { + LaunchpadMapping::Back => PluginActions::SwayBack, + LaunchpadMapping::Firefox => PluginActions::SwayWorkspace("1:\u{e007}"), + LaunchpadMapping::Chats => PluginActions::SwayWorkspace("2:\u{f086}"), + LaunchpadMapping::Email => PluginActions::SwayWorkspace("3:\u{f0e0}"), + LaunchpadMapping::Coding => PluginActions::SwayWorkspace("5:\u{f1c9}"), + LaunchpadMapping::Steam => PluginActions::SwayWorkspace("11:\u{f1b6}"), + LaunchpadMapping::Games => PluginActions::SwayWorkspace("12:\u{f11b}"), + LaunchpadMapping::Youtube => PluginActions::SwayWorkspace("13:\u{f167}"), + LaunchpadMapping::Spotify => PluginActions::SwayWorkspace("42:\u{f001}"), + LaunchpadMapping::Test => PluginActions::ExamplePlugin, + LaunchpadMapping::FirefoxWebdriver => PluginActions::SelectMatrixRoomByID(""), + LaunchpadMapping::IncreaseLayer => { + if PRESELECTED_LAYER_NUMBER.load(Ordering::SeqCst) < 9 { + PRESELECTED_LAYER_NUMBER.fetch_add(1, Ordering::SeqCst); + } + PluginActions::ShowNumber(PRESELECTED_LAYER_NUMBER.load(Ordering::SeqCst) as usize) + } + LaunchpadMapping::DecreaseLayer => { + if PRESELECTED_LAYER_NUMBER.load(Ordering::SeqCst) > 0 { + PRESELECTED_LAYER_NUMBER.fetch_sub(1, Ordering::SeqCst); + } + PluginActions::ShowNumber(PRESELECTED_LAYER_NUMBER.load(Ordering::SeqCst) as usize) + } + LaunchpadMapping::SelectLayer => PluginActions::SelectLayer, + } + } +} + +impl TryFrom<i32> for LaunchpadMapping { + type Error = (); + + fn try_from(input: i32) -> Result<LaunchpadMapping, Self::Error> { + match input { + 120 => Ok(LaunchpadMapping::Back), + 119 => Ok(LaunchpadMapping::Firefox), + 118 => Ok(LaunchpadMapping::Chats), + 117 => Ok(LaunchpadMapping::Email), + 116 => Ok(LaunchpadMapping::Coding), + 115 => Ok(LaunchpadMapping::Steam), + 114 => Ok(LaunchpadMapping::Games), + 113 => Ok(LaunchpadMapping::Youtube), + 112 => Ok(LaunchpadMapping::Spotify), + 0 => Ok(LaunchpadMapping::Test), + 1 => Ok(LaunchpadMapping::FirefoxWebdriver), + 8 => Ok(LaunchpadMapping::IncreaseLayer), + 24 => Ok(LaunchpadMapping::DecreaseLayer), + 40 => Ok(LaunchpadMapping::SelectLayer), + _ => Err(()), + } + } +} diff --git a/launchpad_sway_controler/src/plugin_actions/mod.rs b/launchpad_sway_controler/src/plugin_actions/mod.rs @@ -1,15 +1,29 @@ +use crate::reset_colors; +use crate::utils::globals::{LAYER_NUMBER, PRESELECTED_LAYER_NUMBER, SHOWING_NUMBER}; +use crate::utils::show_number; use color_eyre::Result; +use midir::MidiOutput; +use std::sync::atomic::Ordering; use swayipc_async::Connection; use tokio::io::AsyncWriteExt; use tokio::net::UnixStream; pub enum PluginActions<'a> { SwayWorkspace(&'a str), + SwayBack, ExamplePlugin, + SelectMatrixRoomByID(&'a str), + RunMatrixPreset(&'a str), + ShowNumber(usize), + SelectLayer, } impl PluginActions<'_> { pub async fn run(&self) -> Result<()> { + let midi_out = MidiOutput::new("My Test Output")?; + let midi_out_ports = midi_out.ports(); + let out_port = midi_out_ports.get(1).unwrap(); + let mut conn_out = midi_out.connect(out_port, "midir-test").unwrap(); match self { PluginActions::SwayWorkspace(workspace) => { let mut connection = Connection::new().await?; @@ -18,11 +32,43 @@ impl PluginActions<'_> { .await .unwrap(); } + PluginActions::SwayBack => { + let mut connection = Connection::new().await?; + connection + .run_command("workspace back_and_forth") + .await + .unwrap(); + } PluginActions::ExamplePlugin => { let mut socket = UnixStream::connect("/run/lsc_example_plugin.sock").await?; socket.write(b"test\n").await?; } + PluginActions::SelectMatrixRoomByID(room_id) => { + let mut socket = UnixStream::connect("/run/lsc_matrix_presets.sock").await?; + + socket + .write(format!("select {}\n", room_id).as_bytes()) + .await?; + } + PluginActions::RunMatrixPreset(preset_id) => { + let mut socket = UnixStream::connect("/run/lsc_matrix_presets.sock").await?; + + socket + .write(format!("do {}\n", preset_id).as_bytes()) + .await?; + } + PluginActions::ShowNumber(number) => { + show_number(&mut conn_out, *number); + } + PluginActions::SelectLayer => { + LAYER_NUMBER.store( + PRESELECTED_LAYER_NUMBER.load(Ordering::SeqCst), + Ordering::SeqCst, + ); + SHOWING_NUMBER.store(false, Ordering::SeqCst); + reset_colors(&mut conn_out); + } } Ok(()) } diff --git a/launchpad_sway_controler/src/sway/mod.rs b/launchpad_sway_controler/src/sway/mod.rs @@ -1,8 +1,10 @@ use crate::reset_colors; +use crate::utils::globals::{CURRENT_WORKSPACE, SHOWING_NUMBER}; use color_eyre::Result; use futures_util::stream::StreamExt; use midir::MidiOutput; -use std::convert::{TryFrom, TryInto}; +use std::convert::TryFrom; +use std::sync::atomic::Ordering; use swayipc_async::{Connection, Event, EventType, WorkspaceChange}; use tracing::*; @@ -16,11 +18,9 @@ pub async fn get_workspaces(connection: &mut Connection) -> Result<()> { let midi_out_ports = midi_out.ports(); let out_port = midi_out_ports.get(1).unwrap(); let mut conn_out = midi_out.connect(out_port, "midir-test").unwrap(); - if let Ok(workspace) = WorkspaceLaunchpadMapping::try_from(space.num) { + CURRENT_WORKSPACE.store(space.num as i64, Ordering::SeqCst); + if !SHOWING_NUMBER.load(Ordering::SeqCst) { reset_colors(&mut conn_out); - conn_out - .send(&[144, (workspace as i32).try_into().unwrap(), 28]) - .unwrap(); } } } @@ -62,7 +62,7 @@ pub async fn listen_for_workspace_changes() -> Result<()> { // subscribe to a workspace events. let subs = [EventType::Workspace]; let mut events = Connection::new().await?.subscribe(&subs).await?; - let midi_out = MidiOutput::new("My Test Output")?; + let midi_out = MidiOutput::new("My Test Output").unwrap(); let midi_out_ports = midi_out.ports(); let out_port = midi_out_ports.get(1).unwrap(); let mut conn_out = midi_out.connect(out_port, "midir-test").unwrap(); @@ -72,12 +72,10 @@ pub async fn listen_for_workspace_changes() -> Result<()> { if w.change == WorkspaceChange::Focus { if let Some(v) = &w.current { if let Some(num) = v.num { + CURRENT_WORKSPACE.store(num as i64, Ordering::SeqCst); // TODO make ? work - reset_colors(&mut conn_out); - if let Ok(workspace) = WorkspaceLaunchpadMapping::try_from(num) { - conn_out - .send(&[144, (workspace as i32).try_into().unwrap(), 28]) - .unwrap(); + if !SHOWING_NUMBER.load(Ordering::SeqCst) { + reset_colors(&mut conn_out); } } } diff --git a/launchpad_sway_controler/src/utils/globals.rs b/launchpad_sway_controler/src/utils/globals.rs @@ -0,0 +1,6 @@ +use std::sync::atomic::{AtomicBool, AtomicI64}; + +pub static SHOWING_NUMBER: AtomicBool = AtomicBool::new(false); +pub static PRESELECTED_LAYER_NUMBER: AtomicI64 = AtomicI64::new(0); +pub static LAYER_NUMBER: AtomicI64 = AtomicI64::new(0); +pub static CURRENT_WORKSPACE: AtomicI64 = AtomicI64::new(0); diff --git a/launchpad_sway_controler/src/utils/mod.rs b/launchpad_sway_controler/src/utils/mod.rs @@ -0,0 +1,30 @@ +use crate::utils::globals::SHOWING_NUMBER; +use crate::utils::numbers::{INNER_KEYS, NUMBERS}; +use midir::MidiOutputConnection; +use std::convert::TryInto; +use std::sync::atomic::Ordering; + +pub mod globals; +mod numbers; + +pub fn show_number(conn_out: &mut MidiOutputConnection, number: usize) { + SHOWING_NUMBER.store(true, Ordering::SeqCst); + conn_out.send(&[176, 0, 0]).unwrap(); + show_array(conn_out, NUMBERS[number]); + conn_out.send(&[144, 24, 47]).unwrap(); + conn_out.send(&[144, 8, 47]).unwrap(); + conn_out.send(&[144, 40, 47]).unwrap(); +} + +pub fn show_array(conn_out: &mut MidiOutputConnection, array: [[bool; 8]; 8]) { + for (row_n, row) in array.iter().enumerate() { + for (column_n, column) in row.iter().enumerate() { + if *column { + let key = INNER_KEYS[row_n][column_n]; + conn_out + .send(&[144, (key as i32).try_into().unwrap(), 15]) + .unwrap(); + } + } + } +} diff --git a/launchpad_sway_controler/src/utils/numbers.rs b/launchpad_sway_controler/src/utils/numbers.rs @@ -0,0 +1,123 @@ +pub static NUMBERS: &[[[bool; 8]; 8]; 10] = &[ + //0 + [ + [false, false, false, false, false, false, false, false], + [false, false, true, true, true, true, false, false], + [false, false, true, false, false, true, false, false], + [false, false, true, false, false, true, false, false], + [false, false, true, false, false, true, false, false], + [false, false, true, false, false, true, false, false], + [false, false, true, true, true, true, false, false], + [false, false, false, false, false, false, false, false], + ], + //1 + [ + [false, false, false, false, false, false, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, true, false, false], + [false, false, false, false, false, false, false, false], + ], + //2 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, false, false], + ], + //3 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + ], + //4 + [ + [false, false, false, false, false, false, false, false], + [false, true, false, false, false, false, true, false], + [false, true, false, false, false, false, true, false], + [false, true, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, false, false], + ], + //5 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, false, false], + [false, true, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, false, false], + ], + //6 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, false, false], + [false, true, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, false, false], + ], + //7 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, false, false], + ], + //8 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, true, false], + [false, true, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, true, false], + [false, true, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + ], + //9 + [ + [false, false, false, false, false, false, false, false], + [false, true, true, true, true, true, true, false], + [false, true, false, false, false, false, true, false], + [false, true, false, false, false, false, true, false], + [false, true, true, true, true, true, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, true, false], + [false, false, false, false, false, false, false, false], + ], +]; + +pub static INNER_KEYS: &[[i64; 8]; 8] = &[ + [0, 1, 2, 3, 4, 5, 6, 7], + [16, 17, 18, 19, 20, 21, 22, 23], + [32, 33, 34, 35, 36, 37, 38, 39], + [48, 49, 50, 51, 52, 53, 54, 55], + [64, 65, 66, 67, 68, 69, 70, 71], + [80, 81, 82, 83, 84, 85, 86, 87], + [96, 97, 98, 99, 100, 101, 102, 103], + [12, 113, 114, 115, 116, 117, 118, 119], +]; diff --git a/lsc_matrix_presets/Cargo.toml b/lsc_matrix_presets/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "lsc_matrix_presets" +version = "0.1.0" +authors = ["MTRNord <mtrnord1@gmail.com>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +matrix-sdk = {git = "https://github.com/matrix-org/matrix-rust-sdk.git", rev = "8f99180c99ccd74803565fb36098389198091ded"} +matrix-sdk-common-macros = {git = "https://github.com/matrix-org/matrix-rust-sdk.git", rev = "8f99180c99ccd74803565fb36098389198091ded"} +url = "2.1.1" +async-trait = "0.1.41" +tracing = "0.1" +tracing-subscriber = "0.2" +tokio = { version = "0.2", features = ["full"] } +futures-util = "0.3.7" +color-eyre = "0.5" +\ No newline at end of file diff --git a/lsc_matrix_presets/src/main.rs b/lsc_matrix_presets/src/main.rs @@ -0,0 +1,51 @@ +use color_eyre::Result; +use futures_util::StreamExt; +//use std::os::unix::fs::PermissionsExt; +use std::path::Path; +use std::{env, fs}; +use tokio::io::{AsyncBufReadExt, BufStream}; +use tokio::net::UnixListener; +use tracing::*; + +#[tokio::main] +async fn main() -> Result<()> { + // Enable the logging crates + color_eyre::install()?; + if env::var("RUST_LOG").is_err() { + env::set_var("RUST_LOG", "INFO"); + } + tracing_subscriber::fmt::init(); + + let socket_path = Path::new("/run/user/lsc_matrix_presets.sock"); + if socket_path.exists() { + fs::remove_file(socket_path)?; + } + + // First we create a unix socket. This is required to be a) The same as the crate name and b) to be in /run + let mut listener = UnixListener::bind(socket_path).unwrap(); + + //let mut perms = fs::metadata(socket_path)?.permissions(); + //perms.set_mode(0o666); + //fs::set_permissions(socket_path, perms)?; + // This listens for new connections + while let Some(stream) = listener.next().await { + match stream { + Ok(stream) => { + tokio::spawn(async move { + println!("new client!"); + let buffer = BufStream::new(stream); + let mut lines = buffer.lines(); + while let Ok(line) = lines.next_line().await { + if let Some(line) = line { + println!("{}", line); + } + } + }); + } + Err(e) => { + error!("Unix socket connection failed: {}", e); + } + } + } + Ok(()) +}