use crate::{
error::Lib3hProtocolResult, protocol_client::Lib3hClientProtocol,
protocol_server::Lib3hServerProtocol, uri::Lib3hUri, DidWork,
};
pub trait NetworkEngine {
fn post(&mut self, data: Lib3hClientProtocol) -> Lib3hProtocolResult<()>;
fn process(&mut self) -> Lib3hProtocolResult<(DidWork, Vec<Lib3hServerProtocol>)>;
fn advertise(&self) -> Lib3hUri;
fn name(&self) -> String;
}