diff options
Diffstat (limited to 'examples/example-async/src')
| -rw-r--r-- | examples/example-async/src/main.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/examples/example-async/src/main.rs b/examples/example-async/src/main.rs deleted file mode 100644 index 7b0be38..0000000 --- a/examples/example-async/src/main.rs +++ /dev/null @@ -1,50 +0,0 @@ -//! `Mingling` Example - Async -//! -//! After enabling the `async` feature: -//! 1. The `chain!` macro will support using **async** functions, -//! 2. The `exec` function of `Program` will return a `Future` for you to use with an async runtime -//! -//! ## Enable Feature -//! Enable the `async` feature for mingling in `Cargo.toml` -//! ```toml -//! [dependencies] -//! mingling = { version = "...", features = ["async"] } -//! ``` -//! -//! # How to Run -//! ```bash -//! cargo run --manifest-path ./examples/example-async/Cargo.toml -- hello World -//! ``` - -use mingling::prelude::*; - -dispatcher!("hello", HelloCommand => HelloEntry); - -// Use Tokio async runtime -#[tokio::main] -async fn main() { - let mut program = ThisProgram::new(); - program.with_dispatcher(HelloCommand); - - // Run program - program.exec().await; -} - -pack!(Hello = String); - -// You can freely use async / non-async functions to declare your Chain - -#[chain] -// fn parse_name(prev: HelloEntry) -> Next { -async fn parse_name(prev: HelloEntry) -> Next { - let name = prev.first().cloned().unwrap_or_else(|| "World".to_string()); - Hello::new(name).to_render() -} - -// For renderers, you can still only use synchronous functions -#[renderer] -fn render_hello_who(prev: Hello) { - r_println!("Hello, {}!", *prev); -} - -gen_program!(); |
