pub trait Server: Send + Sync {
// Required methods
async fn run(&self) -> Result<(), XOneError>;
async fn stop(&self) -> Result<(), XOneError>;
}Expand description
服务器 trait
实现此 trait 后通过 run_server(&server) 运行,
框架自动处理 init()、信号监听和 shutdown()。
ⓘ
use x_one::{Server, XOneError};
struct MyServer;
impl Server for MyServer {
async fn run(&self) -> Result<(), XOneError> {
// 启动监听或阻塞运行
Ok(())
}
async fn stop(&self) -> Result<(), XOneError> {
// 收到退出信号后的清理逻辑
Ok(())
}
}Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.