use client::{ChatClient, ConversationIdOwned, InProcessDelivery}; use std::sync::Arc; fn main() { let (delivery, bus) = InProcessDelivery::new(); let mut cursor = bus.subscribe_tail("delivery_address"); let mut alice = ChatClient::new("alice", delivery.clone()); let mut bob = ChatClient::new("bob", delivery); let bob_bundle = bob.create_intro_bundle().unwrap(); alice .create_conversation(&bob_bundle, b"hello bob") .unwrap(); let raw = cursor.next().unwrap(); let content = bob.receive(&raw).unwrap().unwrap(); println!( "Bob received: {:?}", std::str::from_utf8(&content.data).unwrap() ); let bob_convo_id: ConversationIdOwned = Arc::from(content.conversation_id.as_str()); bob.send_message(&bob_convo_id, b"hi alice").unwrap(); let raw = cursor.next().unwrap(); let content = alice.receive(&raw).unwrap().unwrap(); println!( "Alice received: {:?}", std::str::from_utf8(&content.data).unwrap() ); println!("Message exchange complete."); }