pub trait QueryResponses: JsonSchema {
    fn response_schemas_impl() -> BTreeMap<String, RootSchema>;

    fn response_schemas(
    ) -> Result<BTreeMap<String, RootSchema>, IntegrityError> { ... } }
Expand description

A trait for tying QueryMsg variants (different contract queries) to their response types. This is mostly useful for the generated contracted API description when using cargo schema.

Using the derive macro is the preferred way of implementing this trait.

Example

use cosmwasm_schema::QueryResponses;
use schemars::JsonSchema;

#[derive(JsonSchema)]
struct AccountInfo {
    IcqHandle: String,
}

#[derive(JsonSchema, QueryResponses)]
enum QueryMsg {
    #[returns(Vec<String>)]
    Denoms {},
    #[returns(AccountInfo)]
    AccountInfo { account: String },
}

// You can also compose multiple queries using #[query_responses(nested)]:
#[derive(JsonSchema, QueryResponses)]
#[query_responses(nested)]
#[serde(untagged)]
enum QueryMsg2 {
    MsgA(QueryMsg),
    MsgB(QueryB),
}
#[derive(JsonSchema, QueryResponses)]
enum QueryB {
    #[returns(AccountInfo)]
    AccountInfo { account: String },
}

Required Methods

Provided Methods

Implementors