use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::ibc::IbcChannel;
#[non_exhaustive]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum IbcQuery {
PortId {},
ListChannels { port_id: Option<String> },
Channel {
channel_id: String,
port_id: Option<String>,
},
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct PortIdResponse {
pub port_id: String,
}
impl_response_constructor!(PortIdResponse, port_id: String);
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct ListChannelsResponse {
pub channels: Vec<IbcChannel>,
}
impl_response_constructor!(ListChannelsResponse, channels: Vec<IbcChannel>);
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
pub struct ChannelResponse {
pub channel: Option<IbcChannel>,
}
impl_response_constructor!(ChannelResponse, channel: Option<IbcChannel>);