use cosmwasm_schema::cw_serde;
use cosmwasm_std::Decimal;
use rhaki_cw_plus::serde_value::IntoSerdeJsonString;
pub const YEAR_IN_SECONDS: u64 = 31_536_000;
#[cw_serde]
pub enum PriceType {
Oracle,
Fix { ratio: Decimal },
}
impl IntoSerdeJsonString for PriceType {}
#[cw_serde]
pub enum AssetType {
Token,
Cw20,
}
#[cw_serde]
pub enum UpdateOption<T> {
ToNone,
Some(T),
}
impl<T: Clone> UpdateOption<T> {
pub fn into_option(&self) -> Option<T> {
match self {
UpdateOption::ToNone => None,
UpdateOption::Some(t) => Some(t.clone()),
}
}
pub fn unwrap(self) -> T {
match self {
UpdateOption::ToNone => panic!("Unwrap a None value"),
UpdateOption::Some(val) => val,
}
}
}
#[allow(clippy::from_over_into)]
impl<T> Into<Option<T>> for UpdateOption<T> {
fn into(self) -> Option<T> {
match self {
UpdateOption::ToNone => None,
UpdateOption::Some(val) => Some(val),
}
}
}