1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use async_trait::{async_trait};
use cyfs_base::*;
use crate::{
types::*,
protocol::{*, v0::*},
};
#[derive(PartialEq, Eq)]
pub enum TunnelBuilderState {
Connecting,
Establish,
Closed
}
#[async_trait]
pub trait TunnelBuilder: Send + Sync + OnPackage<AckProxy, &'static DeviceId> {
fn sequence(&self) -> TempSeq;
fn state(&self) -> TunnelBuilderState;
async fn wait_establish(&self) -> Result<(), BuckyError>;
}