use super::*; #[derive(Default, Debug, PartialEq, Copy, Clone, PartialOrd, Ord, Eq)] pub struct Rune(pub u128); impl Rune { pub(crate) fn minimum_at_height(height: Height) -> Self { let length = 13u32 .saturating_sub(height.0 / (DIFFCHANGE_INTERVAL * 2)) .max(1); let mut rune = 0u128; for i in 0..length { if i > 0 { rune += 1; } rune *= 26; } Rune(rune) } } impl Serialize for Rune { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer, { serializer.collect_str(self) } } impl<'de> Deserialize<'de> for Rune { fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where D: Deserializer<'de>, { Ok(DeserializeFromStr::deserialize(deserializer)?.0) } } impl Display for Rune { fn fmt(&self, f: &mut Formatter) -> fmt::Result { let mut n = self.0; if n == u128::max_value() { return write!(f, "BCGDENLQRQWDSLRUGSNLBTMFIJAV"); } n += 1; let mut symbol = String::new();
Inscription number 44,984,927
Genesis block 819,062
File type text
File size 1.01 KB
Creation date