use candid::Nat;
use ciborium::into_writer;
use num_traits::cast::ToPrimitive;
use serde::Serialize;
pub mod bucket;
pub mod cluster;
pub mod file;
mod bytes;
pub use bytes::*;
pub fn format_error<T>(err: T) -> String
where
T: std::fmt::Debug,
{
format!("{:?}", err)
}
pub fn crc32(data: &[u8]) -> u32 {
let mut h = crc32fast::Hasher::new();
h.update(data);
h.finalize()
}
pub fn nat_to_u64(nat: &Nat) -> u64 {
nat.0.to_u64().unwrap_or(0)
}
pub fn to_cbor_bytes(obj: &impl Serialize) -> Vec<u8> {
let mut buf: Vec<u8> = Vec::new();
into_writer(obj, &mut buf).expect("failed to encode in CBOR format");
buf
}