cometbft_rpc/
dialect.rs

1//! Helper types to generalize differences in serialization between
2//! CometBFT RPC protocol versions.
3
4pub mod v0_34;
5pub mod v1;
6pub use v1::Dialect as LatestDialect;
7
8mod begin_block;
9mod check_tx;
10mod deliver_tx;
11mod end_block;
12
13pub use begin_block::BeginBlock;
14pub use check_tx::CheckTx;
15pub use deliver_tx::DeliverTx;
16pub use end_block::EndBlock;
17
18use serde::{de::DeserializeOwned, Serialize};
19
20use cometbft::{abci, evidence};
21
22pub trait Dialect: sealed::Sealed + Default + Clone + Send + Sync {
23    type Event: Into<abci::Event> + Serialize + DeserializeOwned;
24    type Evidence: From<evidence::Evidence> + Serialize + DeserializeOwned + Send;
25}
26
27mod sealed {
28    pub trait Sealed {}
29
30    impl Sealed for super::v0_34::Dialect {}
31    impl Sealed for super::v1::Dialect {}
32}