use crate::table::ToBytes;
#[derive(Debug, Clone)]
pub struct ActionData {
key: String,
data: Vec<u8>,
}
#[derive(Debug, Clone)]
pub struct ActionDataRepeated {
key: String,
data: Vec<Vec<u8>>,
}
impl ActionData {
pub fn new<T: ToBytes>(key: &str, data: T) -> Self {
ActionData {
key: key.to_owned(),
data: data.to_bytes(),
}
}
pub fn get_key(&self) -> &str {
&self.key
}
pub fn get_data(&self) -> &Vec<u8> {
&self.data
}
pub fn as_u32(&self) -> u32 {
self.get_data().to_u32()
}
pub fn as_u64(&self) -> u64 {
self.get_data().to_u64()
}
pub fn as_u128(&self) -> u128 {
self.get_data().to_u128()
}
}
impl ActionDataRepeated {
pub fn new<T: ToBytes>(key: &str, data: Vec<T>) -> Self {
ActionDataRepeated {
key: key.to_owned(),
data: data.into_iter().map(|d| d.to_bytes()).collect(),
}
}
pub fn get_key(&self) -> &str {
&self.key
}
pub fn get_data(&self) -> &Vec<Vec<u8>> {
&self.data
}
}