inve_etcd/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 { linearizable: true },
13 }
14 }
15}
16
17impl From<MemberListRequest> for etcdserverpb::MemberListRequest {
18 fn from(req: MemberListRequest) -> Self {
19 req.proto
20 }
21}
22
23#[derive(Debug, Clone)]
24pub struct MemberListResponse {
25 pub header: ResponseHeader,
26 pub members: Vec<Member>,
27}
28
29impl From<etcdserverpb::MemberListResponse> for MemberListResponse {
30 fn from(proto: etcdserverpb::MemberListResponse) -> Self {
31 Self {
32 header: From::from(proto.header.expect("must fetch header")),
33 members: proto.members.into_iter().map(From::from).collect(),
34 }
35 }
36}