use crate::{AcceptingModule, FailingModule, Module};
use cosmwasm_std::{Binary, Empty};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[non_exhaustive]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct StargateMsg {
pub type_url: String,
pub value: Binary,
}
#[non_exhaustive]
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct StargateQuery {
pub path: String,
pub data: Binary,
}
pub trait Stargate: Module<ExecT = StargateMsg, QueryT = StargateQuery, SudoT = Empty> {}
pub type StargateAcceptingModule = AcceptingModule<StargateMsg, StargateQuery, Empty>;
impl Stargate for StargateAcceptingModule {}
pub type StargateFailingModule = FailingModule<StargateMsg, StargateQuery, Empty>;
impl Stargate for StargateFailingModule {}