From 58a2c77dace3091fda4ba3903f700b8e928f90c1 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 6 Oct 2025 17:20:31 +0800 Subject: feat: add examples demonstrating action system usage - Create examples workspace member - Add example_action_system binary showcasing macro usage - Demonstrate action registration and processing workflow --- examples/Cargo.toml | 21 +++++++++++++++++++++ examples/src/bin/example_action_system.rs | 18 ++++++++++++++++++ examples/src/lib.rs | 1 + 3 files changed, 40 insertions(+) create mode 100644 examples/Cargo.toml create mode 100644 examples/src/bin/example_action_system.rs create mode 100644 examples/src/lib.rs diff --git a/examples/Cargo.toml b/examples/Cargo.toml new file mode 100644 index 0000000..3a6cee2 --- /dev/null +++ b/examples/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "examples" +edition = "2024" +version.workspace = true + +[[bin]] +name = "example_action_system" +path = "src/bin/example_action_system.rs" + +[dependencies] + +# Utils +tcp_connection = { path = "../crates/utils/tcp_connection" } +cfg_file = { path = "../crates/utils/cfg_file", features = ["default"] } +string_proc = { path = "../crates/utils/string_proc" } + +# Core +action_system = { path = "../crates/system_action" } + +# Async & Networking +tokio = { version = "1.46.1", features = ["full"] } diff --git a/examples/src/bin/example_action_system.rs b/examples/src/bin/example_action_system.rs new file mode 100644 index 0000000..a659eb3 --- /dev/null +++ b/examples/src/bin/example_action_system.rs @@ -0,0 +1,18 @@ +use action_system::{action::ActionContext, action_gen, action_pool::ActionPool}; +use tcp_connection::error::TcpTargetError; + +#[tokio::main] +async fn main() { + let mut pool = ActionPool::new(); + PrintNameAction::register_to_pool(&mut pool); + + PrintNameAction::process_at_pool(&pool, ActionContext::local(), "World".to_string()) + .await + .unwrap(); +} + +#[action_gen] +async fn print_name_action(_ctx: ActionContext, name: String) -> Result<(), TcpTargetError> { + println!("Hello, {}!", name); + Ok(()) +} diff --git a/examples/src/lib.rs b/examples/src/lib.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/examples/src/lib.rs @@ -0,0 +1 @@ + -- cgit