cosmrs/staking/
query_validators_response.rs1use crate::base::query::PageResponse;
2use crate::staking::Validator;
3use crate::{proto, ErrorReport, Result};
4
5#[derive(Clone, Debug, PartialEq)]
7pub struct QueryValidatorsResponse {
8 pub validators: Vec<Validator>,
10
11 pub pagination: Option<PageResponse>,
13}
14
15impl TryFrom<proto::cosmos::staking::v1beta1::QueryValidatorsResponse> for QueryValidatorsResponse {
16 type Error = ErrorReport;
17
18 fn try_from(
19 proto: cosmos_sdk_proto::cosmos::staking::v1beta1::QueryValidatorsResponse,
20 ) -> Result<Self> {
21 Ok(QueryValidatorsResponse {
22 validators: proto
23 .validators
24 .into_iter()
25 .map(TryInto::try_into)
26 .collect::<Result<_>>()?,
27 pagination: proto.pagination.map(Into::into),
28 })
29 }
30}
31
32impl From<QueryValidatorsResponse> for proto::cosmos::staking::v1beta1::QueryValidatorsResponse {
33 fn from(query_validators_response: QueryValidatorsResponse) -> Self {
34 proto::cosmos::staking::v1beta1::QueryValidatorsResponse {
35 validators: query_validators_response
36 .validators
37 .into_iter()
38 .map(Into::into)
39 .collect(),
40 pagination: query_validators_response.pagination.map(Into::into),
41 }
42 }
43}