passivized_docker_engine_client 0.0.10-alpha

Docker Engine Client - manage and run containers, images, and volumes.
Documentation
use serde::Deserialize;

#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub struct BuildImageResponseStreamItem {

    pub stream: Option<String>,

    #[serde(rename = "errorDetail")]
    pub error_detail: Option<BuildImageResponseStreamItemErrorDetail>,

    pub error: Option<String>,

}

impl BuildImageResponseStreamItem {

    pub fn has_error(&self) -> bool {
        self.error.is_some() || self.error_detail.is_some()
    }
}

#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub struct BuildImageResponseStreamItemErrorDetail {

    pub message: String,

}

#[cfg(test)]
mod test_build_image_response_stream_item {

    mod test_has_error {
        use crate::responses::{BuildImageResponseStreamItem, BuildImageResponseStreamItemErrorDetail};

        #[test]
        fn when_none() {
            let value = BuildImageResponseStreamItem {
                stream: Some("foo".into()),
                error: None,
                error_detail: None
            };

            assert!(!value.has_error());
        }

        #[test]
        fn when_error() {
            let value = BuildImageResponseStreamItem {
                stream: None,
                error: Some("bar".into()),
                error_detail: None
            };

            assert!(value.has_error());
        }

        #[test]
        fn when_error_detail() {
            let value = BuildImageResponseStreamItem {
                stream: None,
                error: None,
                error_detail: Some(BuildImageResponseStreamItemErrorDetail {
                    message: "qux".into()
                })
            };

            assert!(value.has_error());
        }
    }

}