rustainers/image/
reference.rs

1use std::fmt::{Debug, Display};
2
3use super::{ImageId, ImageName};
4
5/// An image reference
6///
7/// An image can be reference by a name, or by and id
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub enum ImageReference {
10    /// An image id
11    Id(ImageId),
12
13    /// An image name
14    Name(ImageName),
15}
16
17impl From<ImageId> for ImageReference {
18    fn from(value: ImageId) -> Self {
19        Self::Id(value)
20    }
21}
22
23impl From<ImageName> for ImageReference {
24    fn from(value: ImageName) -> Self {
25        Self::Name(value)
26    }
27}
28
29impl Display for ImageReference {
30    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
31        match self {
32            Self::Id(id) => write!(f, "{id}"),
33            Self::Name(name) => write!(f, "{name}"),
34        }
35    }
36}