dlp_api/state/
program_config.rs1use std::collections::BTreeSet;
2
3use borsh::{BorshDeserialize, BorshSerialize};
4use solana_program::pubkey::Pubkey;
5
6use super::discriminator::{AccountDiscriminator, AccountWithDiscriminator};
7use crate::{
8 impl_to_bytes_with_discriminator_borsh,
9 impl_try_from_bytes_with_discriminator_borsh,
10};
11
12#[derive(BorshSerialize, BorshDeserialize, Default, Debug)]
13pub struct ProgramConfig {
14 pub approved_validators: BTreeSet<Pubkey>,
15}
16
17impl AccountWithDiscriminator for ProgramConfig {
18 fn discriminator() -> AccountDiscriminator {
19 AccountDiscriminator::ProgramConfig
20 }
21}
22
23impl ProgramConfig {
24 pub fn size_with_discriminator(&self) -> usize {
25 8 + 4 + 32 * self.approved_validators.len()
26 }
27}
28
29impl_to_bytes_with_discriminator_borsh!(ProgramConfig);
30impl_try_from_bytes_with_discriminator_borsh!(ProgramConfig);