etcd-rs 1.0.1

etcd client for rust
Documentation
use crate::proto::etcdserverpb;
use crate::ResponseHeader;

#[derive(Debug, Clone)]
pub struct CompactRequest {
    proto: etcdserverpb::CompactionRequest,
}

impl CompactRequest {
    pub fn new(revision: i64) -> Self {
        Self {
            proto: etcdserverpb::CompactionRequest {
                revision,
                physical: false,
            },
        }
    }

    pub fn physical(mut self) -> Self {
        self.proto.physical = true;
        self
    }
}

impl From<CompactRequest> for etcdserverpb::CompactionRequest {
    fn from(req: CompactRequest) -> Self {
        req.proto
    }
}

impl From<i64> for CompactRequest {
    fn from(revision: i64) -> Self {
        Self::new(revision)
    }
}

#[derive(Debug, Clone)]
pub struct CompactResponse {
    pub header: ResponseHeader,
}

impl From<etcdserverpb::CompactionResponse> for CompactResponse {
    fn from(proto: etcdserverpb::CompactionResponse) -> Self {
        Self {
            header: From::from(proto.header.expect("must fetch header")),
        }
    }
}