rattler_conda_types/package/
files.rs1use crate::package::PackageFile;
2use std::path::{Path, PathBuf};
3
4#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct Files {
7 pub files: Vec<PathBuf>,
9}
10
11impl PackageFile for Files {
12 fn package_path() -> &'static Path {
13 Path::new("info/files")
14 }
15
16 fn from_str(str: &str) -> Result<Self, std::io::Error> {
17 Ok(Self {
18 files: str.lines().map(PathBuf::from).collect(),
19 })
20 }
21}
22
23#[cfg(test)]
24mod test {
25 use super::{Files, PackageFile};
26 use std::path::PathBuf;
27
28 #[test]
29 pub fn test_parse_files() {
30 let parsed = Files::from_str("include/zconf.h\ninclude/zlib.h\nlib/libz.a\nlib/libz.so\nlib/libz.so.1\nlib/libz.so.1.2.8\nlib/pkgconfig/zlib.pc").unwrap();
31 assert_eq!(
32 parsed,
33 Files {
34 files: vec![
35 PathBuf::from("include/zconf.h"),
36 PathBuf::from("include/zlib.h"),
37 PathBuf::from("lib/libz.a"),
38 PathBuf::from("lib/libz.so"),
39 PathBuf::from("lib/libz.so.1"),
40 PathBuf::from("lib/libz.so.1.2.8"),
41 PathBuf::from("lib/pkgconfig/zlib.pc"),
42 ]
43 }
44 );
45 }
46}