fun_pkg_impl/
lib.rs

1pub mod v1 {
2    use fun_pkg_api::traits::Pkg;
3    use fun_pkg_api::Version;
4
5    pub struct FunPkg {
6        name: String,
7        version: Version,
8    }
9
10    impl FunPkg {
11        pub fn new(name: String, version: Version) -> Self {
12            FunPkg { name, version }
13        }
14    }
15
16    impl Pkg for FunPkg {
17        fn pkg_name(&self) -> String {
18            self.name.clone()
19        }
20
21        fn pkg_version(&self) -> Version {
22            self.version.clone()
23        }
24    }
25}
26
27#[cfg(test)]
28mod tests {
29    use super::v1::FunPkg;
30    use fun_pkg_api::traits::Pkg;
31    use fun_pkg_api::Version;
32
33    #[test]
34    fn test_pkg_name() {
35        let pkg = FunPkg::new("fun-pkg".to_string(), Version::default());
36        assert_eq!(pkg.pkg_name(), "fun-pkg");
37    }
38
39    #[test]
40    fn test_pkg_version() {
41        let pkg = FunPkg::new("fun-pkg".to_string(), Version::new(1, 0, 0));
42        assert_eq!(pkg.pkg_version().to_string(), "1.0.0");
43    }
44}