dpp/voting/votes/resource_vote/v0/
mod.rs

1#[cfg(feature = "json-conversion")]
2use crate::serialization::json_safe_fields;
3use crate::voting::vote_choices::resource_vote_choice::ResourceVoteChoice;
4use crate::voting::vote_polls::VotePoll;
5use crate::ProtocolError;
6use bincode::{Decode, Encode};
7use platform_serialization_derive::{PlatformDeserialize, PlatformSerialize};
8use platform_value::Identifier;
9#[cfg(feature = "serde-conversion")]
10use serde::{Deserialize, Serialize};
11
12#[cfg_attr(feature = "json-conversion", json_safe_fields)]
13#[derive(Debug, Clone, Encode, Decode, PlatformDeserialize, PlatformSerialize, PartialEq)]
14#[cfg_attr(
15    feature = "serde-conversion",
16    derive(Serialize, Deserialize),
17    serde(rename_all = "camelCase")
18)]
19#[platform_serialize(unversioned)]
20pub struct ResourceVoteV0 {
21    pub vote_poll: VotePoll,
22    pub resource_vote_choice: ResourceVoteChoice,
23}
24
25impl Default for ResourceVoteV0 {
26    fn default() -> Self {
27        ResourceVoteV0 {
28            vote_poll: VotePoll::default(),
29            resource_vote_choice: ResourceVoteChoice::Abstain,
30        }
31    }
32}
33
34impl ResourceVoteV0 {
35    pub fn vote_poll_unique_id(&self) -> Result<Identifier, ProtocolError> {
36        self.vote_poll.unique_id()
37    }
38}