// use std::sync::{Arc, atomic::AtomicBool}; // use swactor::error::*; // use tokio::task::JoinHandle; // struct ActorInbox { // _guard: AtomicBool // } // struct GenericGreeter { // _guard: Arc, // inbox: Vec, // outbox: Vec, // } // impl GenericGreeter { // pub fn new() -> Self { // Self { // _guard: Arc::new(AtomicBool::new(false)), // inbox: Vec::new(), // outbox: Vec::new(), // } // } // } // pub enum GreeterMessage { // Name(String), // } // pub enum GreeterResponse { // Hello(String), // } // pub struct Greeter; // fn main() { // let rt = tokio::runtime::Builder::new_current_thread() // .build() // .expect("failed to build runtime"); // let greet = GenericGreeter::spawn(&rt); // let res = rt.block_on(async {greet.await}).expect("runtime error").expect("greeter error"); // println!("Success!"); // // let greeter = Greeter.spawn(&rt); // // let response = rt // // .block_on(async move { // // greeter // // .send(GreeterMessage::Name("world".to_string())) // // .await // // }) // // .expect("failed to get respose"); // // match response { // // GreeterResponse::Hello(hello) => println!("{hello}"), // // } // }