1
+ use std:: ops:: { Deref , DerefMut } ;
1
2
use tikv_client_common:: Error ;
2
3
use tikv_client_proto:: { kvrpcpb, metapb:: Region } ;
3
4
@@ -14,7 +15,7 @@ const RAW_MODE_MAX_KEY: Prefix = [RAW_MODE_PREFIX + 1, 0, 0, 0];
14
15
const TXN_MODE_MIN_KEY : Prefix = [ TXN_MODE_PREFIX , 0 , 0 , 0 ] ;
15
16
const TXN_MODE_MAX_KEY : Prefix = [ TXN_MODE_PREFIX + 1 , 0 , 0 , 0 ] ;
16
17
17
- const MAX_KEYSPACE_ID : KeySpaceId = [ 0xff , 0xff , 0xff ] ;
18
+ const MAX_KEYSPACE_ID : KeySpaceId = KeySpaceId ( [ 0xff , 0xff , 0xff ] ) ;
18
19
19
20
pub trait RequestCodec : Sized + Clone + Sync + Send + ' static {
20
21
fn encode_key ( & self , key : Vec < u8 > ) -> Vec < u8 > {
@@ -150,7 +151,22 @@ impl KeyMode {
150
151
151
152
type Prefix = [ u8 ; KEYSPACE_PREFIX_LEN ] ;
152
153
153
- type KeySpaceId = [ u8 ; 3 ] ;
154
+ #[ derive( Clone , Copy , Default , PartialEq ) ]
155
+ pub struct KeySpaceId ( [ u8 ; 3 ] ) ;
156
+
157
+ impl Deref for KeySpaceId {
158
+ type Target = [ u8 ; 3 ] ;
159
+
160
+ fn deref ( & self ) -> & Self :: Target {
161
+ & self . 0
162
+ }
163
+ }
164
+
165
+ impl DerefMut for KeySpaceId {
166
+ fn deref_mut ( & mut self ) -> & mut Self :: Target {
167
+ & mut self . 0
168
+ }
169
+ }
154
170
155
171
#[ derive( Copy , Clone ) ]
156
172
struct KeySpaceCodec {
0 commit comments