from bytes macro

This commit is contained in:
Hardhat Chad
2024-08-25 15:01:00 +00:00
parent dce5c11a12
commit 3a425364c2
2 changed files with 21 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
use bytemuck::{Pod, Zeroable};
use ore_utils::impl_to_bytes;
use ore_utils::*;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
@@ -9,4 +9,4 @@ pub struct MineEvent {
pub timing: i64,
}
impl_to_bytes!(MineEvent);
event!(MineEvent);

View File

@@ -9,6 +9,17 @@ macro_rules! impl_to_bytes {
};
}
#[macro_export]
macro_rules! impl_from_bytes {
($struct_name:ident) => {
impl $struct_name {
pub fn from_bytes(data: &[u8]) -> &Self {
bytemuck::from_bytes::<Self>(data)
}
}
};
}
#[macro_export]
macro_rules! impl_account_from_bytes {
($struct_name:ident) => {
@@ -73,3 +84,11 @@ macro_rules! instruction {
$crate::impl_instruction_from_bytes!($struct_name);
};
}
#[macro_export]
macro_rules! event {
($struct_name:ident) => {
$crate::impl_to_bytes!($struct_name);
$crate::impl_from_bytes!($struct_name);
};
}