etcd-rs 1.0.1

etcd client for rust
Documentation
use crate::proto::etcdserverpb;
use crate::{Member, ResponseHeader};

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

impl MemberRemoveRequest {
    pub fn new(member_id: u64) -> Self {
        Self {
            proto: etcdserverpb::MemberRemoveRequest { id: member_id },
        }
    }
}

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

impl From<u64> for MemberRemoveRequest {
    fn from(id: u64) -> Self {
        Self::new(id)
    }
}

#[derive(Debug, Clone)]
pub struct MemberRemoveResponse {
    pub header: ResponseHeader,
    pub members: Vec<Member>,
}

impl From<etcdserverpb::MemberRemoveResponse> for MemberRemoveResponse {
    fn from(proto: etcdserverpb::MemberRemoveResponse) -> Self {
        Self {
            header: From::from(proto.header.expect("must fetch header")),
            members: proto.members.into_iter().map(From::from).collect(),
        }
    }
}