ya_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
27impl Default for MemberListRequest {
28 fn default() -> Self {
29 Self::new()
30 }
31}
32
33#[derive(Debug, Clone)]
34pub struct MemberListResponse {
35 pub header: ResponseHeader,
36 pub members: Vec<Member>,
37}
38
39impl From<etcdserverpb::MemberListResponse> for MemberListResponse {
40 fn from(proto: etcdserverpb::MemberListResponse) -> Self {
41 Self {
42 header: From::from(proto.header.expect("must fetch header")),
43 members: proto.members.into_iter().map(From::from).collect(),
44 }
45 }
46}