1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::async_token::NetxToken;
use crate::result::RetResult;
use anyhow::Result;
use data_rw::DataOwnedReader;
use std::sync::Arc;

#[async_trait::async_trait]
pub trait IController: Send + Sync {
    async fn call(&self, tt: u8, cmd_tag: i32, dr: DataOwnedReader) -> Result<RetResult>;
}

pub trait ICreateController {
    fn create_controller(&self, token: NetxToken) -> Result<Arc<dyn IController>>;
}