From 13d4c81a7beaa526995c29a13345ae4f44b581db Mon Sep 17 00:00:00 2001 From: Mylloon Date: Tue, 21 Dec 2021 09:47:01 +0100 Subject: [PATCH] block main thread in main function whe calling async function --- Cargo.lock | 91 +++++++++++++++++++++++++++++++++++++++++------------ Cargo.toml | 1 + src/main.rs | 4 ++- 3 files changed, 75 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9fac160..f543c73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,42 +107,92 @@ dependencies = [ ] [[package]] -name = "futures-channel" -version = "0.3.18" +name = "futures" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" +checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" dependencies = [ "futures-core", + "futures-sink", ] [[package]] name = "futures-core" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" [[package]] -name = "futures-sink" -version = "0.3.18" +name = "futures-executor" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" - -[[package]] -name = "futures-task" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" - -[[package]] -name = "futures-util" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" +checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" dependencies = [ "futures-core", "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" + +[[package]] +name = "futures-macro" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" + +[[package]] +name = "futures-task" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" + +[[package]] +name = "futures-util" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", "pin-project-lite", "pin-utils", + "slab", ] [[package]] @@ -326,6 +376,7 @@ name = "matter_bot" version = "0.1.0" dependencies = [ "dotenv", + "futures", "mattermost_api", ] diff --git a/Cargo.toml b/Cargo.toml index 6d2bc5e..67feaa7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,4 @@ edition = "2021" [dependencies] dotenv = "0.15.0" mattermost_api = "0.1.0" +futures = "0.3.19" diff --git a/src/main.rs b/src/main.rs index 00f5de6..19ca4db 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,13 @@ use dotenv::dotenv; use std::env; +use futures::executor::block_on; mod mattermost; fn main() { dotenv().expect("Le fichier .env n'a pas été trouvé..."); // vérification si fichier .env trouvé let token = env::var("TOKEN_MATTERMOST").expect("Token non trouvé dans le fichier .env"); // récupération du token let url = env::var("MATTERMOST_INSTANCE_URL").expect("URL non trouvé dans le fichier .env"); // récupération de l'url - mattermost::connexion(&token, &url); // connexion à mattermost + let connexion = mattermost::connexion(&token, &url); // connexion à mattermost + block_on(connexion); }