fun_pkg_api/
lib.rs

1use std::fmt::{Display, Formatter, Result};
2
3#[derive(Debug, Clone, Default)]
4pub struct Version {
5    pub major: u32,
6    pub minor: u32,
7    pub patch: u32,
8}
9
10impl Version {
11    pub fn new(major: u32, minor: u32, patch: u32) -> Self {
12        Version {
13            major,
14            minor,
15            patch,
16        }
17    }
18}
19
20impl Display for Version {
21    fn fmt(&self, f: &mut Formatter) -> Result {
22        write!(f, "{}.{}.{}", self.major, self.minor, self.patch)
23    }
24}
25
26pub mod traits {
27    use crate::Version;
28
29    pub trait Pkg {
30        ///  get package name
31        fn pkg_name(&self) -> String;
32
33        /// get package version
34        fn pkg_version(&self) -> Version;
35    }
36}