diff options
Diffstat (limited to 'nix-rust/src/store/path_info.rs')
-rw-r--r-- | nix-rust/src/store/path_info.rs | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/nix-rust/src/store/path_info.rs b/nix-rust/src/store/path_info.rs deleted file mode 100644 index c2903ed29..000000000 --- a/nix-rust/src/store/path_info.rs +++ /dev/null @@ -1,70 +0,0 @@ -use crate::store::StorePath; -use crate::Error; -use std::collections::BTreeSet; - -#[derive(Clone, Debug)] -pub struct PathInfo { - pub path: StorePath, - pub references: BTreeSet<StorePath>, - pub nar_size: u64, - pub deriver: Option<StorePath>, - - // Additional binary cache info. - pub url: Option<String>, - pub compression: Option<String>, - pub file_size: Option<u64>, -} - -impl PathInfo { - pub fn parse_nar_info(nar_info: &str, store_dir: &str) -> Result<Self, Error> { - let mut path = None; - let mut references = BTreeSet::new(); - let mut nar_size = None; - let mut deriver = None; - let mut url = None; - let mut compression = None; - let mut file_size = None; - - for line in nar_info.lines() { - let colon = line.find(':').ok_or(Error::BadNarInfo)?; - - let (name, value) = line.split_at(colon); - - if !value.starts_with(": ") { - return Err(Error::BadNarInfo); - } - - let value = &value[2..]; - - if name == "StorePath" { - path = Some(StorePath::new(std::path::Path::new(value), store_dir)?); - } else if name == "NarSize" { - nar_size = Some(u64::from_str_radix(value, 10).map_err(|_| Error::BadNarInfo)?); - } else if name == "References" { - if !value.is_empty() { - for r in value.split(' ') { - references.insert(StorePath::new_from_base_name(r)?); - } - } - } else if name == "Deriver" { - deriver = Some(StorePath::new_from_base_name(value)?); - } else if name == "URL" { - url = Some(value.into()); - } else if name == "Compression" { - compression = Some(value.into()); - } else if name == "FileSize" { - file_size = Some(u64::from_str_radix(value, 10).map_err(|_| Error::BadNarInfo)?); - } - } - - Ok(PathInfo { - path: path.ok_or(Error::BadNarInfo)?, - references, - nar_size: nar_size.ok_or(Error::BadNarInfo)?, - deriver, - url: Some(url.ok_or(Error::BadNarInfo)?), - compression, - file_size, - }) - } -} |