kerml/kernel/
package.rs

1// This is free and unencumbered software released into the public domain.
2
3use crate::{prelude::fmt, root::Namespace};
4
5pub trait Package: Namespace {}
6
7pub trait LibraryPackage: Package {
8    fn is_standard(&self) -> bool {
9        false
10    }
11}
12
13impl fmt::Debug for dyn Package {
14    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
15        fmt::Display::fmt(self, f)
16    }
17}
18
19impl fmt::Display for dyn Package {
20    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
21        match (self.short_name(), self.name()) {
22            (Some(short_name), Some(name)) => write!(f, "package <'{}'> '{}'", short_name, name),
23            (Some(short_name), None) => write!(f, "package <'{}'>", short_name),
24            (None, Some(name)) => write!(f, "package '{}'", name),
25            (None, None) => write!(f, "package"),
26        }
27    }
28}