1mod application;
16#[cfg(feature = "server")]
17mod server;
18
19use std::io;
20
21pub use application::{Application, RequestDispatcher, check_version};
22#[allow(deprecated)]
23#[cfg(feature = "server")]
24pub use server::{CancellationToken, Server, ServerBuilder, ServerRuntime, start_server};
25pub use tenderdash_proto as proto;
26use tenderdash_proto::prost::{DecodeError, EncodeError};
27
28#[cfg(feature = "crypto")]
29mod merkle;
30#[cfg(feature = "crypto")]
31pub mod signatures;
32
33#[cfg(feature = "tracing-span")]
34pub mod tracing_span;
36
37#[derive(Debug, thiserror::Error)]
39pub enum Error {
40 #[error("configuration error: {0}")]
41 Configuration(String),
42 #[error("connection error")]
43 Connection(#[from] io::Error),
44 #[error("cannot decode protobuf message")]
45 Decode(DecodeError),
46 #[error("cannot encode protobuf message")]
47 Encode(EncodeError),
48 #[error("cannot create canonical message: {0}")]
49 Canonical(String),
50 #[error("server terminated")]
51 Cancelled(),
52 #[error("async runtime error")]
53 Async(String),
54}
55
56impl From<EncodeError> for Error {
58 fn from(error: EncodeError) -> Error {
59 Error::Encode(error)
60 }
61}
62
63impl From<DecodeError> for Error {
65 fn from(error: DecodeError) -> Error {
66 Error::Decode(error)
67 }
68}