dpp/data_contract/associated_token/token_perpetual_distribution/
mod.rs1use crate::data_contract::associated_token::token_perpetual_distribution::v0::TokenPerpetualDistributionV0;
2use crate::errors::ProtocolError;
3#[cfg(feature = "json-conversion")]
4use crate::serialization::JsonConvertible;
5use bincode::{Decode, Encode};
6use derive_more::From;
7use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
8use serde::{Deserialize, Serialize};
9use std::fmt;
10
11pub mod distribution_function;
12pub mod distribution_recipient;
13pub mod methods;
14pub mod reward_distribution_moment;
15pub mod reward_distribution_type;
16pub mod v0;
17
18#[cfg_attr(feature = "json-conversion", derive(JsonConvertible))]
19#[derive(
20 Serialize,
21 Deserialize,
22 Encode,
23 Decode,
24 PlatformSerialize,
25 PlatformDeserialize,
26 Debug,
27 Clone,
28 PartialEq,
29 Eq,
30 PartialOrd,
31 From,
32)]
33#[serde(tag = "$formatVersion")]
34#[platform_serialize(unversioned)]
35pub enum TokenPerpetualDistribution {
36 #[serde(rename = "0")]
37 V0(TokenPerpetualDistributionV0),
38}
39
40impl fmt::Display for TokenPerpetualDistribution {
41 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
42 match self {
43 TokenPerpetualDistribution::V0(v0) => {
44 write!(f, "{}", v0) }
46 }
47 }
48}