use crate::protos::{acct_state::DataRepr, AcctState};
impl AcctState {
pub fn data(&self) -> &[u8] {
match &self.data_repr {
Some(DataRepr::Data(data)) => data.as_slice(),
_ => &[],
}
}
pub fn data_mut(&mut self) -> &mut Vec<u8> {
if !matches!(self.data_repr, Some(DataRepr::Data(_))) {
self.data_repr = Some(DataRepr::Data(Vec::new()));
}
match &mut self.data_repr {
Some(DataRepr::Data(data)) => data,
_ => unreachable!(),
}
}
pub fn set_data(&mut self, data: Vec<u8>) {
self.data_repr = Some(DataRepr::Data(data));
}
pub fn data_hash(&self) -> u64 {
match self.data_repr {
Some(DataRepr::DataHash(hash)) => hash,
_ => 0,
}
}
pub fn set_data_hash(&mut self, hash: u64) {
self.data_repr = Some(DataRepr::DataHash(hash));
}
}