1#![doc = include_str!("../README.md")]
2#![allow(missing_docs)]
3#![cfg_attr(not(test), warn(unused_extern_crates))]
4#![cfg_attr(docsrs, feature(doc_cfg))]
5
6mod traits;
7pub use traits::*;
8
9#[doc(no_inline)]
10pub use eyre;
11#[doc(no_inline)]
12pub use ruint::{self, aliases::U256, uint};
13
14mod pointer;
15pub use pointer::{Pointer, PointerBase};
16
17pub type Result<T, E = Error> = std::result::Result<T, E>;
19
20pub type Error = eyre::Error;
22
23pub fn format_bytes(bytes: usize) -> impl std::fmt::Display {
26 std::fmt::from_fn(move |f| {
27 if bytes < 1024 {
28 write!(f, "{bytes} B")
29 } else if bytes < 1024 * 1024 {
30 write!(f, "{:.1} KiB ({bytes} B)", bytes as f64 / 1024.0)
31 } else {
32 write!(f, "{:.1} MiB ({bytes} B)", bytes as f64 / (1024.0 * 1024.0))
33 }
34 })
35}