quartz_contract_core/msg/execute/
sequenced.rs1use cosmwasm_schema::cw_serde;
2use cosmwasm_std::StdError;
3use serde::Serialize;
4
5use crate::msg::HasDomainType;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct Sequenced<D>(pub D);
9
10#[cw_serde]
11pub struct RawSequenced<R>(pub R);
12
13impl<R: Serialize + HasDomainType> HasDomainType for RawSequenced<R> {
14 type DomainType = Sequenced<R::DomainType>;
15}
16
17impl<R: HasDomainType> TryFrom<RawSequenced<R>> for Sequenced<R::DomainType> {
18 type Error = StdError;
19
20 fn try_from(value: RawSequenced<R>) -> Result<Self, Self::Error> {
21 Ok(Self(value.0.try_into()?))
22 }
23}
24
25impl<R: HasDomainType> From<Sequenced<R::DomainType>> for RawSequenced<R> {
26 fn from(value: Sequenced<R::DomainType>) -> Self {
27 Self(value.0.into())
28 }
29}