pub enum CarHeader {
V1(CarHeaderV1),
V2(),
}
Variants§
Implementations§
Source§impl CarHeader
impl CarHeader
pub fn new_v1(roots: Vec<Cid>) -> Self
Sourcepub fn roots(&self) -> Vec<Cid> ⓘ
pub fn roots(&self) -> Vec<Cid> ⓘ
Examples found in repository?
examples/extract.rs (line 17)
9fn main() {
10 let file_name = std::env::args().nth(1);
11 let path = file_name.as_ref().map(|f| f.into()).unwrap_or_else(|| {
12 let file = std::path::Path::new("test");
13 file.join("carv1-basic.car")
14 });
15 let file = std::fs::File::open(path).unwrap();
16 let mut reader = reader::new_v1(file).unwrap();
17 let roots = reader.header().roots();
18 for r in roots.iter() {
19 extract_ipld_to_current_path(&mut reader, *r).unwrap();
20 }
21}
More examples
examples/cat_cid.rs (line 19)
12fn main() {
13 // let cid = std::env::args().nth(1).expect("use cid as argument");
14 let cid = "bafkreiaqv66m5nd6mwgkk7h5lwqnjzj54s4f7knmnrjhb7ylzqfg2vdo54";
15 let file = std::path::Path::new("test");
16 let file = file.join("carv1-basic.car");
17 let file = std::fs::File::open(file).unwrap();
18 let mut reader = reader::new_v1(file).unwrap();
19 let roots = reader.header().roots();
20 let file_cid = Cid::try_from(cid).expect("cid format error");
21 for r in roots.iter() {
22 let root_ipld = reader.ipld(r).unwrap();
23 let root: Result<UnixFs, CarError> = root_ipld.try_into();
24 let root_dir = root.unwrap();
25 let count = root_dir
26 .links()
27 .iter()
28 .filter(|u| u.hash() == file_cid)
29 .count();
30 if count > 0 {
31 cat_ipld(&mut reader, file_cid).unwrap();
32 }
33 }
34}
pub fn read_header<R>(r: R) -> Result<CarHeader, CarError>
pub fn decode(buf: &[u8]) -> Result<CarHeader, CarError>
pub fn encode(&self) -> Result<Vec<u8>, CarError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CarHeader
impl RefUnwindSafe for CarHeader
impl Send for CarHeader
impl Sync for CarHeader
impl Unpin for CarHeader
impl UnwindSafe for CarHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more