etcd_rs/cluster/
member_remove.rs

1use crate::proto::etcdserverpb;
2use crate::{Member, ResponseHeader};
3
4#[derive(Debug, Clone)]
5pub struct MemberRemoveRequest {
6    proto: etcdserverpb::MemberRemoveRequest,
7}
8
9impl MemberRemoveRequest {
10    pub fn new(member_id: u64) -> Self {
11        Self {
12            proto: etcdserverpb::MemberRemoveRequest { id: member_id },
13        }
14    }
15}
16
17impl From<MemberRemoveRequest> for etcdserverpb::MemberRemoveRequest {
18    fn from(req: MemberRemoveRequest) -> Self {
19        req.proto
20    }
21}
22
23impl From<u64> for MemberRemoveRequest {
24    fn from(id: u64) -> Self {
25        Self::new(id)
26    }
27}
28
29#[derive(Debug, Clone)]
30pub struct MemberRemoveResponse {
31    pub header: ResponseHeader,
32    pub members: Vec<Member>,
33}
34
35impl From<etcdserverpb::MemberRemoveResponse> for MemberRemoveResponse {
36    fn from(proto: etcdserverpb::MemberRemoveResponse) -> Self {
37        Self {
38            header: From::from(proto.header.expect("must fetch header")),
39            members: proto.members.into_iter().map(From::from).collect(),
40        }
41    }
42}