//! Standard extensions to [`crate::rcore`]. pub mod atomic; pub mod cast; pub mod collections; pub mod fallible; pub mod inlining; mod local_origin; pub mod nullable; pub mod point; pub mod singular; pub mod tracing; pub mod typeless; mod wrapped_origin; use std::{error::Error, fmt::Display, rc::Rc}; use crate::func::*; use crate::rcore::*; impl Display for Address { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{}@{}", hex::encode(self.point), self.index) } } /// Extension trait for [Serializable]s. pub trait SerializableExt: Serializable { /// Serialize into a [Vec] of bytes. fn bytes(&self) -> Vec; } impl SerializableExt for S { fn bytes(&self) -> Vec { let mut vec = Vec::new(); self.serialize(&mut vec); vec } }