zebra_state/service/
traits.rs

1//! Trait aliases for state-related Tower services.
2//!
3//! These traits provide convenient aliases for `tower::Service`
4//! implementations that operate on Zebra state request and response types.
5//!
6//! - [`State`]: for services that handle state-modifying requests.
7//! - [`ReadState`]: for services that handle read-only state requests.
8
9use crate::{ReadRequest, ReadResponse, Request, Response};
10use zebra_node_services::service_traits::ZebraService;
11
12/// Trait alias for services handling state-modifying requests.
13pub trait State: ZebraService<Request, Response> {}
14
15impl<T> State for T where T: ZebraService<Request, Response> {}
16
17/// Trait alias for services handling read-only state requests.
18pub trait ReadState: ZebraService<ReadRequest, ReadResponse> {}
19
20impl<T> ReadState for T where T: ZebraService<ReadRequest, ReadResponse> {}