Skip to main content

nanite_docker/instruction/
arg.rs

1use alloc::string::String;
2use core::fmt::{Display, Formatter};
3
4/// Represents an `ARG` instruction
5///
6/// ```rust
7/// use nanite_docker::{Arg};
8///
9/// let arg = Arg {
10///     name: "name".to_string(),
11///     default: Some("default".to_string()),
12/// };
13/// let arg_built = format!("{arg}");
14/// assert_eq!(arg_built, "ARG name=default");
15/// ```
16
17#[derive(Clone, Debug)]
18pub struct Arg {
19    pub name: String,
20    pub default: Option<String>,
21}
22impl Display for Arg {
23    fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
24        match &self.default {
25            Some(default) => write!(f, "ARG {}={default}", self.name),
26            None => write!(f, "ARG {}", self.name),
27        }
28    }
29}