use core::fmt::Display;
use crate::Felt;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct AssetId {
suffix: Felt,
prefix: Felt,
}
impl AssetId {
pub fn new(suffix: Felt, prefix: Felt) -> Self {
Self { suffix, prefix }
}
pub fn suffix(&self) -> Felt {
self.suffix
}
pub fn prefix(&self) -> Felt {
self.prefix
}
pub fn is_empty(&self) -> bool {
self.prefix == Felt::ZERO && self.suffix == Felt::ZERO
}
}
impl Display for AssetId {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.write_fmt(format_args!(
"0x{:016x}{:016x}",
self.prefix().as_canonical_u64(),
self.suffix().as_canonical_u64()
))
}
}