File tree Expand file tree Collapse file tree 2 files changed +45
-3
lines changed
Expand file tree Collapse file tree 2 files changed +45
-3
lines changed Original file line number Diff line number Diff line change @@ -46,14 +46,14 @@ async fn main() -> Result<(), Error> {
4646 println ! ( "put kv: {:?}" , chris) ;
4747 println ! ( ) ;
4848
49- // get bob
49+ // get kv
5050 let resp = client. get ( bob. key ( ) , None ) . await ?;
5151 if let Some ( kv) = resp. kvs ( ) . first ( ) {
5252 println ! ( "Get kv: {{{}: {}}}" , kv. key_str( ) ?, kv. value_str( ) ?) ;
5353 println ! ( ) ;
5454 }
5555
56- // get all key-value pairs
56+ // get all kv pairs
5757 println ! ( "Get all users:" ) ;
5858 let resp = client
5959 . get ( "" , Some ( GetOptions :: new ( ) . with_from_key ( ) ) )
@@ -63,7 +63,7 @@ async fn main() -> Result<(), Error> {
6363 }
6464 println ! ( ) ;
6565
66- // delete chris
66+ // delete kv
6767 let resp = client
6868 . delete ( chris. key ( ) , Some ( DeleteOptions :: new ( ) . with_prev_key ( ) ) )
6969 . await ?;
Original file line number Diff line number Diff line change 1+ //! Watch example
2+
3+ use etcdv3:: * ;
4+
5+ #[ tokio:: main]
6+ async fn main ( ) -> Result < ( ) , Error > {
7+ let mut client = Client :: connect ( [ "localhost:2379" ] ) . await ?;
8+
9+ client. put ( "foo" , "bar" , None ) . await ?;
10+ println ! ( "put kv: {{foo: bar}}" ) ;
11+
12+ let ( mut watcher, mut stream) = client. watch ( "foo" , None ) . await ?;
13+ println ! ( "create watcher {}" , watcher. watch_id( ) ) ;
14+ println ! ( ) ;
15+
16+ client. put ( "foo" , "bar2" , None ) . await ?;
17+ client. delete ( "foo" , None ) . await ?;
18+
19+ while let Some ( resp) = stream. message ( ) . await ? {
20+ println ! ( "receive watch response" ) ;
21+
22+ if resp. canceled ( ) {
23+ println ! ( "watch canceled!" ) ;
24+ break ;
25+ }
26+
27+ for event in resp. events ( ) {
28+ println ! ( "event type: {:?}" , event. event_type( ) ) ;
29+ if let Some ( kv) = event. kv ( ) {
30+ println ! ( "kv: {{{}: {}}}" , kv. key_str( ) ?, kv. value_str( ) ?) ;
31+ }
32+
33+ if EventType :: Delete == event. event_type ( ) {
34+ watcher. cancel ( ) . await ?;
35+ }
36+ }
37+
38+ println ! ( ) ;
39+ }
40+
41+ Ok ( ( ) )
42+ }
You can’t perform that action at this time.
0 commit comments