1pub mod traits;
2pub mod types;
3
4#[macro_export]
6macro_rules! principal {
7 ($id:expr) => {{ candid::Principal::from_text($id).unwrap() }};
8}
9
10#[derive(thiserror::Error, Debug)]
12pub enum Error {
13 #[error(transparent)]
14 Generic(#[from] anyhow::Error),
15}
16
17pub fn parse_size(s: &str) -> Result<u64, parse_size::Error> {
19 parse_size::Config::new().with_binary().parse_size(s)
20}
21
22pub fn parse_size_usize(s: &str) -> Result<usize, parse_size::Error> {
24 parse_size(s).map(|x| x as usize)
25}
26
27pub fn parse_size_decimal(s: &str) -> Result<u64, parse_size::Error> {
29 parse_size::Config::new().parse_size(s)
30}
31
32pub fn parse_size_decimal_usize(s: &str) -> Result<usize, parse_size::Error> {
34 parse_size(s).map(|x| x as usize)
35}