amico_lib/actions/
print_action.rs

1use amico_core::errors::ActionError;
2use amico_core::traits::Action;
3use std::thread;
4
5pub struct PrintAction {
6    message: String,
7}
8
9impl PrintAction {
10    pub fn new(message: String) -> Self {
11        PrintAction { message }
12    }
13}
14
15impl Action for PrintAction {
16    fn execute(&self) -> Result<(), ActionError> {
17        println!("{}", self.message);
18        // Simulate some acting time
19        thread::sleep(std::time::Duration::from_millis(100));
20        Err(ActionError::ExecutingActionError(
21            "Print action failed".to_string(),
22        ))
23    }
24}