1#![deny(rust_2018_idioms, warnings)]
3#![allow(clippy::type_complexity)]
4
5mod accept;
6mod builder;
7mod config;
8mod server;
9mod service;
10mod signals;
11mod socket;
12mod worker;
13
14pub use self::builder::ServerBuilder;
15pub use self::config::{ServiceConfig, ServiceRuntime};
16pub use self::server::Server;
17pub use self::service::ServiceFactory;
18
19#[doc(hidden)]
20pub use self::socket::FromStream;
21
22#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
24pub(crate) struct Token(usize);
25
26impl Token {
27 pub(crate) fn next(&mut self) -> Token {
28 let token = Token(self.0);
29 self.0 += 1;
30 token
31 }
32}
33
34pub fn new() -> ServerBuilder {
36 ServerBuilder::default()
37}