1mod builder;
2mod service;
3
4pub use self::builder::ServerBuilder;
5pub use self::service::{handle_one, Server, ServerHandler};
6
7use crate::frame;
8
9#[derive(thiserror::Error, Debug)]
11pub enum ServerError<E> {
12 #[error("Message handler service error")]
14 Service(E),
15 #[error("Http/2 codec error: {0}")]
17 Frame(#[from] frame::FrameError),
18 #[error("Dispatcher error")]
20 Dispatcher,
21 #[error("Control service init error")]
23 ControlServiceError,
24 #[error("Publish service init error")]
26 PublishServiceError,
27 #[error("Handshake timeout")]
29 HandshakeTimeout,
30 #[error("Peer is disconnected, error: {0:?}")]
32 Disconnected(Option<std::io::Error>),
33}
34
35impl<E> From<std::io::Error> for ServerError<E> {
36 fn from(err: std::io::Error) -> Self {
37 ServerError::Disconnected(Some(err))
38 }
39}