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