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