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