cometbft_rpc/endpoint/
block_search.rs1use serde::{Deserialize, Serialize};
4
5pub use super::{block, block_results};
6use crate::{dialect::Dialect, prelude::*, request::RequestMessage, serializers, Method, Order};
7
8#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
10pub struct Request {
11 pub query: String,
12 #[serde(with = "serializers::from_str")]
13 pub page: u32,
14 #[serde(with = "serializers::from_str")]
15 pub per_page: u8,
16 pub order_by: Order,
17}
18
19impl Request {
20 pub fn new(query: impl ToString, page: u32, per_page: u8, order_by: Order) -> Self {
22 Self {
23 query: query.to_string(),
24 page,
25 per_page,
26 order_by,
27 }
28 }
29}
30
31impl RequestMessage for Request {
32 fn method(&self) -> Method {
33 Method::BlockSearch
34 }
35}
36
37impl<S: Dialect> crate::Request<S> for Request {
38 type Response = Response;
39}
40
41impl<S: Dialect> crate::SimpleRequest<S> for Request {
42 type Output = Response;
43}
44
45#[derive(Clone, Debug, Deserialize, Serialize)]
46pub struct Response {
47 pub blocks: Vec<block::Response>,
48 #[serde(with = "serializers::from_str")]
49 pub total_count: u32,
50}
51
52impl crate::Response for Response {}