etcd_rs/cluster/
member_remove.rs1use 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}