co_primitives/types/
raw_cid.rs1use cid::Cid;
5use std::io::Cursor;
6
7pub const CID_MAX_SIZE: usize = 128;
8pub type RawCid = [u8; CID_MAX_SIZE];
9
10pub fn cid_to_raw(cid: &Cid) -> RawCid {
11 let bytes = cid.to_bytes();
12 assert!(bytes.len() <= CID_MAX_SIZE, "CID exceeds maximum size of {CID_MAX_SIZE} bytes");
13 let mut raw = [0u8; CID_MAX_SIZE];
14 raw[..bytes.len()].copy_from_slice(&bytes);
15 raw
16}
17
18pub fn raw_to_cid(raw: &RawCid) -> Option<Cid> {
19 Cid::read_bytes(Cursor::new(raw)).ok()
20}