Crate spirit_tokio[−][src]
A collection of helpers integrating tokio primitives into spirit
The crate provides few helper implementations that handle listening socket auto-reconfiguration based on configuration.
Examples
extern crate failure; extern crate serde; #[macro_use] extern crate serde_derive; extern crate spirit; extern crate spirit_tokio; extern crate tokio; use std::default::Default; use failure::Error; use spirit::{Empty, Spirit, SpiritInner}; use spirit_tokio::TcpListen; use tokio::net::TcpStream; use tokio::prelude::*; const DEFAULT_CONFIG: &str = r#" [listening_socket] port = 1234 "#; #[derive(Default, Deserialize)] struct Config { listening_socket: TcpListen, } impl Config { fn listening_socket(&self) -> TcpListen { self.listening_socket.clone() } } fn connection(_: &SpiritInner<Empty, Config>, conn: TcpStream, _: &Empty) -> impl Future<Item = (), Error = Error> { tokio::io::write_all(conn, "Hello\n") .map(|_| ()) .map_err(Error::from) } fn main() { Spirit::<_, Empty, _>::new(Config::default()) .config_defaults(DEFAULT_CONFIG) .config_helper(Config::listening_socket, connection, "Listener") .run(|spirit| { Ok(()) }); }
Further examples are in the git repository.
Structs
Listen |
A description of listening interface and port. |
Scale |
A scaling configuration provided by user. |
Singleton |
Turns scaling off and provides a single instance. |
Task |
An inner tokio task helper. |
TcpListen |
A configuration fragment of a TCP listening socket. |
UdpListen |
A configuration fragment describing a bound UDP socket. |
Enums
Runtime |
A helper to initialize a tokio runtime as part of spirit. |
Traits
ResourceMaker |
An alternative (more concrete) trait to |
Scaled |
Description of scaling into multiple tasks. |
Type Definitions
TokioBody |
A body run on tokio runtime. |