contain-rs-parser 0.2.3

Run containers with docker or podman
Documentation
use std::time::Duration;

#[derive(Debug, PartialEq, Eq)]
pub enum FieldAttribute {
    EnvVar(String),
    Arg(String),
    Port(u32),
}

#[derive(Debug, PartialEq, Eq)]
pub struct Model {
    pub struct_name: String,
    pub image: String,
    pub command: Option<Command>,
    pub health_check: Option<HealthCheck>,
    pub wait_time: Option<WaitTime>,
    pub wait_log: Option<WaitLog>,
    pub fields: Vec<ModelField>,
}

#[derive(Debug, PartialEq, Eq)]
pub struct Command {
    pub args: Vec<String>,
}

#[derive(Debug, PartialEq, Eq)]
pub enum HealthCheck {
    Command(String),
}

#[derive(Debug, PartialEq, Eq)]
pub struct WaitTime {
    pub time: Duration,
}

#[derive(Debug, PartialEq, Eq)]
pub struct WaitLog {
    pub message: String,
}

#[derive(Debug, PartialEq, Eq)]
pub struct ModelField {
    pub name: String,
    pub r#type: FieldType,
    pub attributes: Vec<FieldAttribute>,
}

#[derive(Debug, PartialEq, Eq)]
pub enum FieldType {
    Simple,
    Option,
}