123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- use anchor_lang::prelude::*;
- macro_rules! size {
- ($name: ident, $size:expr) => {
- impl $name {
- pub const LEN: usize = $size;
- }
- };
- }
- pub const MAX_SIZE: usize = 10;
- pub const MAX_SIZE_U8: u8 = 11;
- #[account]
- pub struct Data {
- pub udata: u128, // 16
- pub idata: i128, // 16
- }
- size!(Data, 32);
- #[account]
- pub struct DataU16 {
- pub data: u16, // 2
- }
- size!(DataU16, 32);
- #[account]
- pub struct DataI8 {
- pub data: i8, // 1
- }
- size!(DataI8, 1);
- #[account]
- pub struct DataI16 {
- pub data: i16, // 2
- }
- size!(DataI16, 2);
- #[account(zero_copy)]
- pub struct DataZeroCopy {
- pub data: u16, // 2
- pub _padding: u8, // 1
- pub bump: u8, // 1
- }
- size!(DataZeroCopy, 4);
- #[account]
- pub struct DataWithFilter {
- pub authority: Pubkey, // 32
- pub filterable: Pubkey, // 32
- }
- size!(DataWithFilter, 64);
- #[account]
- pub struct DataMultidimensionalArray {
- pub data: [[u8; 10]; 10], // 100
- }
- size!(DataMultidimensionalArray, 100);
- #[account]
- pub struct DataConstArraySize {
- pub data: [u8; MAX_SIZE], // 10
- }
- size!(DataConstArraySize, MAX_SIZE);
- #[account]
- pub struct DataConstCastArraySize {
- pub data_one: [u8; MAX_SIZE as usize],
- pub data_two: [u8; MAX_SIZE_U8 as usize],
- }
- #[account]
- pub struct DataMultidimensionalArrayConstSizes {
- pub data: [[u8; MAX_SIZE_U8 as usize]; MAX_SIZE],
- }
|