File tree Expand file tree Collapse file tree 2 files changed +22
-13
lines changed Expand file tree Collapse file tree 2 files changed +22
-13
lines changed Original file line number Diff line number Diff line change 11
11
//!
12
12
//! [`Client::delete`] can be used to delete a tag.
13
13
use anyhow:: Result ;
14
- use bytes:: Bytes ;
15
14
use futures_lite:: { Stream , StreamExt } ;
16
15
use quic_rpc:: { client:: BoxedConnector , Connector , RpcClient } ;
17
16
use serde:: { Deserialize , Serialize } ;
@@ -44,16 +43,22 @@ where
44
43
}
45
44
46
45
/// Get the value of a single tag
47
- pub async fn get ( & self , name : Tag ) -> Result < Option < TagInfo > > {
48
- let mut stream = self . rpc . server_streaming ( ListRequest :: single ( name) ) . await ?;
46
+ pub async fn get ( & self , name : impl AsRef < [ u8 ] > ) -> Result < Option < TagInfo > > {
47
+ let mut stream = self
48
+ . rpc
49
+ . server_streaming ( ListRequest :: single ( name. as_ref ( ) ) )
50
+ . await ?;
49
51
Ok ( stream. next ( ) . await . transpose ( ) ?)
50
52
}
51
53
52
54
/// Lists all tags.
53
- pub async fn list_prefix ( & self , prefix : & [ u8 ] ) -> Result < impl Stream < Item = Result < TagInfo > > > {
55
+ pub async fn list_prefix (
56
+ & self ,
57
+ prefix : impl AsRef < [ u8 ] > ,
58
+ ) -> Result < impl Stream < Item = Result < TagInfo > > > {
54
59
let stream = self
55
60
. rpc
56
- . server_streaming ( ListRequest :: prefix ( Bytes :: copy_from_slice ( prefix) . into ( ) ) )
61
+ . server_streaming ( ListRequest :: prefix ( prefix. as_ref ( ) ) )
57
62
. await ?;
58
63
Ok ( stream. map ( |res| res. map_err ( anyhow:: Error :: from) ) )
59
64
}
Original file line number Diff line number Diff line change @@ -87,8 +87,10 @@ pub struct ListRequest {
87
87
88
88
impl ListRequest {
89
89
/// List tags with a prefix
90
- pub fn prefix ( prefix : Tag ) -> Self {
91
- let mut to = prefix. 0 . to_vec ( ) ;
90
+ pub fn prefix ( prefix : & [ u8 ] ) -> Self {
91
+ let from = prefix. to_vec ( ) ;
92
+ let mut to = from. clone ( ) ;
93
+ let from = Bytes :: from ( from) . into ( ) ;
92
94
let to = if next_prefix ( & mut to) {
93
95
Some ( Bytes :: from ( to) . into ( ) )
94
96
} else {
@@ -97,21 +99,23 @@ impl ListRequest {
97
99
Self {
98
100
raw : true ,
99
101
hash_seq : true ,
100
- from : Some ( prefix ) ,
102
+ from : Some ( from ) ,
101
103
to,
102
104
}
103
105
}
104
106
105
107
/// List a single tag
106
- pub fn single ( name : Tag ) -> Self {
107
- let mut next = name. 0 . to_vec ( ) ;
108
+ pub fn single ( name : & [ u8 ] ) -> Self {
109
+ let from = name. to_vec ( ) ;
110
+ let mut next = from. clone ( ) ;
108
111
increment_vec ( & mut next) ;
109
- let next = Bytes :: from ( next) . into ( ) ;
112
+ let from = Bytes :: from ( from) . into ( ) ;
113
+ let to = Bytes :: from ( next) . into ( ) ;
110
114
Self {
111
115
raw : true ,
112
116
hash_seq : true ,
113
- from : Some ( name ) ,
114
- to : Some ( next ) ,
117
+ from : Some ( from ) ,
118
+ to : Some ( to ) ,
115
119
}
116
120
}
117
121
You can’t perform that action at this time.
0 commit comments