dlp_api/state/
delegation_record.rs1use std::mem::size_of;
2
3use bytemuck::{Pod, Zeroable};
4use solana_program::pubkey::Pubkey;
5
6use super::discriminator::{AccountDiscriminator, AccountWithDiscriminator};
7use crate::{
8 impl_to_bytes_with_discriminator_zero_copy,
9 impl_try_from_bytes_with_discriminator_zero_copy,
10};
11
12#[repr(C)]
15#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
16pub struct DelegationRecord {
17 pub authority: Pubkey,
19
20 pub owner: Pubkey,
22
23 pub delegation_slot: u64,
25
26 pub lamports: u64,
28
29 pub commit_frequency_ms: u64,
31}
32
33impl AccountWithDiscriminator for DelegationRecord {
34 fn discriminator() -> AccountDiscriminator {
35 AccountDiscriminator::DelegationRecord
36 }
37}
38
39impl DelegationRecord {
40 pub fn size_with_discriminator() -> usize {
41 8 + size_of::<DelegationRecord>()
42 }
43}
44
45impl_to_bytes_with_discriminator_zero_copy!(DelegationRecord);
46impl_try_from_bytes_with_discriminator_zero_copy!(DelegationRecord);