1#[cfg(feature = "bincode")]
3use crate::SysvarSerialize;
4#[cfg(feature = "serde")]
5use serde_derive::{Deserialize, Serialize};
6pub use solana_sdk_ids::sysvar::rewards::{check_id, id, ID};
7use {crate::Sysvar, solana_sysvar_id::impl_sysvar_id};
8
9impl_sysvar_id!(Rewards);
10
11#[repr(C)]
12#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
13#[cfg_attr(feature = "wincode", derive(wincode::SchemaWrite, wincode::SchemaRead))]
14#[derive(Debug, Default, PartialEq)]
15pub struct Rewards {
16 pub validator_point_value: f64,
17 pub unused: f64,
18}
19
20pub const SIZE: usize = size_of::<Rewards>();
22const _: () = assert!(SIZE == 16);
23
24impl Rewards {
25 pub fn new(validator_point_value: f64) -> Self {
26 Self {
27 validator_point_value,
28 unused: 0.0,
29 }
30 }
31}
32impl Sysvar for Rewards {}
33#[cfg(feature = "bincode")]
34impl SysvarSerialize for Rewards {}
35
36#[cfg(test)]
37mod tests {
38 use super::*;
39
40 #[test]
41 fn test_size_of() {
42 assert_eq!(
43 wincode::serialized_size(&Rewards::default()).unwrap() as usize,
44 SIZE,
45 );
46 }
47}