1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#![allow(
clippy::suspicious_op_assign_impl,
clippy::suspicious_arithmetic_impl,
clippy::module_inception
)]
#![deny(
clippy::clone_on_ref_ptr,
clippy::dbg_macro,
clippy::enum_glob_use,
clippy::get_unwrap,
clippy::macro_use_imports
)]
pub use auth::{Auth, AuthenticateRequest, AuthenticateResponse};
pub use client::{Client, ClientConfig};
pub use error::Error;
pub use kv::{
DeleteRequest, DeleteResponse, KeyRange, KeyValue, Kv, PutRequest, PutResponse, RangeRequest,
RangeResponse, TxnCmp, TxnOp, TxnOpResponse, TxnRequest, TxnResponse,
};
pub use lease::{
Lease, LeaseGrantRequest, LeaseGrantResponse, LeaseKeepAliveRequest, LeaseKeepAliveResponse,
LeaseRevokeRequest, LeaseRevokeResponse,
};
pub use response_header::ResponseHeader;
pub use watch::{Event, EventType, Watch, WatchCancelRequest, WatchCreateRequest, WatchResponse};
macro_rules! pbwrap_request {
($(#[$attr:meta])* $intern:ident => $name:ident) => {
$(#[$attr])*
pub struct $name {
proto: crate::proto::etcdserverpb::$intern,
}
impl From<$name> for crate::proto::etcdserverpb::$intern {
fn from(x: $name) -> Self {
x.proto
}
}
};
($(#[$attr:meta])* $name:ident) => {
pbwrap_request!($(#[$attr])* $name => $name);
}
}
macro_rules! pbwrap_response {
($(#[$attr:meta])* $intern:ident => $name:ident) => {
$(#[$attr])*
#[derive(Debug)]
pub struct $name {
proto: crate::proto::etcdserverpb::$intern,
}
impl From<crate::proto::etcdserverpb::$intern> for $name {
fn from(resp: crate::proto::etcdserverpb::$intern) -> Self {
Self { proto: resp }
}
}
};
($(#[$attr:meta])* $name:ident) => {
pbwrap_response!($(#[$attr])* $name => $name);
}
}
mod auth;
mod client;
mod error;
mod kv;
mod lazy;
mod lease;
mod proto;
mod response_header;
mod watch;
pub type Result<T> = std::result::Result<T, Error>;