switchboard_solana/oracle_program/accounts/
sliding_window.rs

1use crate::prelude::*;
2
3#[zero_copy(unsafe)]
4#[derive(Default)]
5#[repr(packed)]
6pub struct SlidingWindowElement {
7    pub oracle_key: Pubkey,
8    pub value: SwitchboardDecimal,
9    pub slot: u64,
10    pub timestamp: i64,
11}
12
13#[account(zero_copy(unsafe))]
14#[repr(packed)]
15pub struct SlidingResultAccountData {
16    pub data: [SlidingWindowElement; 16],
17    pub bump: u8,
18    pub _ebuf: [u8; 512],
19}
20
21impl SlidingResultAccountData {
22    pub fn size() -> usize {
23        8 + std::mem::size_of::<SlidingResultAccountData>()
24    }
25}