cardano_serialization_lib/protocol_types/governance/
governance_action_ids.rs

1use crate::*;
2
3#[derive(
4    Clone,
5    Debug,
6    Eq,
7    Ord,
8    PartialEq,
9    PartialOrd,
10    Hash,
11    serde::Serialize,
12    serde::Deserialize,
13    JsonSchema,
14)]
15#[wasm_bindgen]
16pub struct GovernanceActionIds(pub(crate) Vec<GovernanceActionId>);
17
18to_from_json!(GovernanceActionIds);
19
20#[wasm_bindgen]
21impl GovernanceActionIds {
22    pub fn new() -> Self {
23        Self(Vec::new())
24    }
25
26    pub fn add(&mut self, governance_action_id: &GovernanceActionId) {
27        self.0.push(governance_action_id.clone());
28    }
29
30    pub fn get(&self, index: usize) -> Option<GovernanceActionId> {
31        self.0.get(index).cloned()
32    }
33
34    pub fn len(&self) -> usize {
35        self.0.len()
36    }
37}