enum Tier1Input {
FromNetwork {
msg: Vec<u8>,
from: PeerId,
},
FromTier2(Vec<u8>),
}
enum Tier1Output {
ToNetwork {
msg: Vec<u8>
exclude: PeerId
},
ToTier2(Vec<u8>),
}
struct Tier1 {}
impl Tier1 {
fn handle_inputs() {
loop {
let input = input_channel.recv()
match input {
FromNetwork(msg, from) => {
send_to_conn_monitor(msg, from);
if is_duplicate(msg) {
continue
}
output_channel.send(Tier1Output::ToNetwork{msg, from});
output_channel.send(Tier1Output::ToTier2(msg));
}
FromTier2(msg) => {
enqueue_to_persistent_transmitter(msg)
}
}
}
}
}