inve_etcd/cluster/
member_list.rs

1use 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}