docker_client 0.1.0-alpha1

docker-client library
Documentation
use crate::container::{ToRequest};
use crate::http::{Request, URI};

#[derive(Debug, Default)]
pub struct KillerBuilder {
    id: String,
    signal: Option<String>,
}

#[derive(Debug)]
pub struct Killer {
    id: String,
    signal: Option<String>,
}

impl Killer {
    pub fn new() -> KillerBuilder {
        KillerBuilder::default()
    }
}

impl KillerBuilder {
    pub fn id<T>(&mut self, id: T) -> &mut KillerBuilder
        where T: Into<String>
    {
        self.id = id.into();

        self

    }

    pub fn signal<T>(&mut self, signal: T) -> &mut KillerBuilder
        where T: Into<Option<String>>
    {
        self.signal = signal.into();

        self
    }

    pub fn build(&self) -> Killer {
        Killer {
            id: self.id.clone(),
            signal: self.signal.clone()
        }
    }
}

impl ToRequest for Killer {
    fn to_request(&self) -> Request {

        let url = format!("/containers/{}/kill", self.id);

        let mut uri = URI::with_path(url);

        if self.signal.is_some() {
            let signal = self.signal.clone().unwrap();
            uri.parameter("signal".to_string(), signal);
        }

        Request::post()
            .url(uri.build())
            .build()
    }
}