Skip to main content

ic_bn_lib_common/
lib.rs

1pub mod traits;
2pub mod types;
3
4/// Converts a string representation to a `candid::Principal`. Panics when an error occurs.
5#[macro_export]
6macro_rules! principal {
7    ($id:expr) => {{ candid::Principal::from_text($id).unwrap() }};
8}
9
10/// Generic error
11#[derive(thiserror::Error, Debug)]
12pub enum Error {
13    #[error(transparent)]
14    Generic(#[from] anyhow::Error),
15}
16
17/// Parses size string as a binary (1k = 1024 etc) in u64
18pub fn parse_size(s: &str) -> Result<u64, parse_size::Error> {
19    parse_size::Config::new().with_binary().parse_size(s)
20}
21
22/// Parses size string as a binary (1k = 1024 etc) in usize
23pub fn parse_size_usize(s: &str) -> Result<usize, parse_size::Error> {
24    parse_size(s).map(|x| x as usize)
25}
26
27/// Parses size string as a decimal (1k = 1000 etc) in u64
28pub fn parse_size_decimal(s: &str) -> Result<u64, parse_size::Error> {
29    parse_size::Config::new().parse_size(s)
30}
31
32/// Parses size string as a decimal (1k = 1000 etc) in usize
33pub fn parse_size_decimal_usize(s: &str) -> Result<usize, parse_size::Error> {
34    parse_size(s).map(|x| x as usize)
35}