dpp/group/
action_event.rs1#[cfg(feature = "json-conversion")]
2use crate::serialization::JsonConvertible;
3#[cfg(feature = "value-conversion")]
4use crate::serialization::ValueConvertible;
5use crate::tokens::token_event::TokenEvent;
6use crate::ProtocolError;
7use bincode::{Decode, Encode};
8use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
9#[cfg(feature = "serde-conversion")]
10use serde::{Deserialize, Serialize};
11
12#[derive(
13 Debug, PartialEq, PartialOrd, Clone, Eq, Encode, Decode, PlatformDeserialize, PlatformSerialize,
14)]
15#[cfg_attr(
16 feature = "serde-conversion",
17 derive(Serialize, Deserialize),
18 serde(tag = "type", content = "data", rename_all = "camelCase")
19)]
20#[cfg_attr(feature = "value-conversion", derive(ValueConvertible))]
21#[platform_serialize(unversioned)] pub enum GroupActionEvent {
23 TokenEvent(TokenEvent),
24}
25
26#[cfg(feature = "json-conversion")]
29impl JsonConvertible for GroupActionEvent {}
30
31use std::fmt;
32
33impl fmt::Display for GroupActionEvent {
34 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35 match self {
36 GroupActionEvent::TokenEvent(event) => write!(f, "Token event: {}", event),
37 }
38 }
39}
40
41impl GroupActionEvent {
42 pub fn public_note(&self) -> Option<&str> {
44 match self {
45 GroupActionEvent::TokenEvent(token_event) => token_event.public_note(),
46 }
47 }
48
49 pub fn event_name(&self) -> String {
51 match self {
52 GroupActionEvent::TokenEvent(token_event) => {
53 format!("Token: {}", token_event.associated_document_type_name())
54 }
55 }
56 }
57}