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