netget/server/server_trait.rs
1//! Common trait and utilities for network servers
2
3use anyhow::Result;
4use async_trait::async_trait;
5
6/// Common trait for network servers that can be spawned
7#[async_trait]
8pub trait NetworkServer: Send + Sync + 'static {
9 /// Start the server and run its main loop
10 async fn start(self) -> Result<()>;
11
12 /// Get the server name for logging
13 fn name(&self) -> &str;
14}