#![feature(prelude_import)] #[prelude_import] use std::prelude::rust_2021::*; #[macro_use] extern crate std; use eagle::Protocol; enum TestProtocol { Addition((i32, i32), i32), SomeKindOfQuestion(String, i32), } enum TestProtocolAnswer { addition(i32), some_kind_of_question(i32), } enum TestProtocolQuestion { addition((i32, i32)), some_kind_of_question(String), } enum TestProtocolQuery { addition((i32, i32), Option), some_kind_of_question(String, Option), } trait TestProtocolServer { fn addition(&mut self, arg0: i32, arg1: i32) -> i32; fn some_kind_of_question(&mut self, arg: String) -> i32; } struct TestProtocolClient { queries: ::std::collections::HashMap, send_queue: tokio::sync::mpsc::Sender, recv_queue: tokio::sync::mpsc::Receiver, } impl TestProtocolClient { pub fn new( send_queue: tokio::sync::mpsc::Sender, recv_queue: tokio::sync::mpsc::Receiver, ) -> Self { Self { queries: ::std::collections::HashMap::new(), send_queue, recv_queue, } } pub fn addition(&mut self, arg0: i32, arg1: i32) -> i32 { panic!("not implemented") } pub fn some_kind_of_question(&mut self, arg: String) -> i32 { panic!("not implemented") } } struct DummyServer; impl TestProtocolServer for DummyServer { fn some_kind_of_question(&mut self, question: String) -> i32 { question.len() as i32 } fn addition(&mut self, arg0: i32, arg1: i32) -> i32 { panic!("not yet implemented") } }