2018-12-09 21:51:35 -08:00
|
|
|
//! General purpose tcp server
|
2019-12-02 22:30:09 +06:00
|
|
|
#![deny(rust_2018_idioms, warnings)]
|
|
|
|
#![allow(clippy::type_complexity)]
|
2018-09-11 08:43:23 -07:00
|
|
|
|
|
|
|
mod accept;
|
2018-12-09 20:30:04 -08:00
|
|
|
mod builder;
|
2019-03-14 20:09:34 -07:00
|
|
|
mod config;
|
2018-12-09 21:51:35 -08:00
|
|
|
mod server;
|
2019-11-14 18:38:24 +06:00
|
|
|
mod service;
|
2019-11-26 17:03:52 +06:00
|
|
|
mod signals;
|
2019-07-18 17:05:40 +06:00
|
|
|
mod socket;
|
2018-09-11 08:43:23 -07:00
|
|
|
mod worker;
|
|
|
|
|
2018-12-09 20:30:04 -08:00
|
|
|
pub use self::builder::ServerBuilder;
|
2019-03-14 20:09:34 -07:00
|
|
|
pub use self::config::{ServiceConfig, ServiceRuntime};
|
2018-12-09 21:51:35 -08:00
|
|
|
pub use self::server::Server;
|
2019-11-14 18:38:24 +06:00
|
|
|
pub use self::service::ServiceFactory;
|
2019-03-04 14:31:46 -08:00
|
|
|
|
2019-07-18 17:05:40 +06:00
|
|
|
#[doc(hidden)]
|
|
|
|
pub use self::socket::FromStream;
|
|
|
|
|
2018-09-11 08:43:23 -07:00
|
|
|
/// Socket id token
|
2018-11-03 09:09:14 -07:00
|
|
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
|
2018-09-11 08:43:23 -07:00
|
|
|
pub(crate) struct Token(usize);
|
2018-11-03 09:09:14 -07:00
|
|
|
|
|
|
|
impl Token {
|
2018-11-14 14:20:33 -08:00
|
|
|
pub(crate) fn next(&mut self) -> Token {
|
2019-12-04 15:12:02 +06:00
|
|
|
let token = Token(self.0);
|
2018-11-14 14:20:33 -08:00
|
|
|
self.0 += 1;
|
|
|
|
token
|
2018-11-03 09:09:14 -07:00
|
|
|
}
|
2018-11-17 18:46:26 -08:00
|
|
|
}
|
2018-12-09 22:19:26 -08:00
|
|
|
|
|
|
|
/// Start server building process
|
2019-03-02 14:42:31 -08:00
|
|
|
pub fn new() -> ServerBuilder {
|
2018-12-09 22:19:26 -08:00
|
|
|
ServerBuilder::default()
|
|
|
|
}
|