59 lines
1.6 KiB
Rust
59 lines
1.6 KiB
Rust
|
#![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<i32>),
|
||
|
some_kind_of_question(String, Option<i32>),
|
||
|
}
|
||
|
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<u64, TestProtocolQuery>,
|
||
|
send_queue: tokio::sync::mpsc::Sender<TestProtocolQuestion>,
|
||
|
recv_queue: tokio::sync::mpsc::Receiver<TestProtocolAnswer>,
|
||
|
}
|
||
|
impl TestProtocolClient {
|
||
|
pub fn new(
|
||
|
send_queue: tokio::sync::mpsc::Sender<TestProtocolQuestion>,
|
||
|
recv_queue: tokio::sync::mpsc::Receiver<TestProtocolAnswer>,
|
||
|
) -> 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")
|
||
|
}
|
||
|
}
|