Skip to main content

quartz_contract_core/msg/execute/
sequenced.rs

1use 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}