1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::collections::{BTreeMap};
use crate::imp::structs::metadata::Metadata;
#[derive(Debug)]
pub struct ArchiveData{
meta : Metadata,
file_data : BTreeMap<String, Vec<u8>>
}
impl ArchiveData{
pub(crate) fn new(meta : Metadata, file_data : BTreeMap<String, Vec<u8>>) -> Self{ Self{ meta, file_data } }
pub fn meta(&self) -> &Metadata{ &self.meta }
pub fn get_data(&self, relative_path : &str) -> Option<&[u8]>{
self.file_data.get(relative_path).map(|v| v.as_slice())
}
pub fn iter(&self) -> impl Iterator<Item=(&str, &[u8])>{
self.file_data.iter().map(|(key,val)| (key.as_str(), val.as_slice()))
}
}