Skip to content

Commit 051a157

Browse files
committed
refactor ApiVx with Mode generic para
Signed-off-by: iosmanthus <[email protected]>
1 parent 1c1ce17 commit 051a157

File tree

18 files changed

+160
-226
lines changed

18 files changed

+160
-226
lines changed

examples/pessimistic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ async fn main() {
2323
};
2424

2525
// init
26-
let client = Client::new_with_config(args.pd, config, ApiV1, None)
26+
let client = Client::new_with_config(args.pd, config, ApiV1::default(), None)
2727
.await
2828
.expect("Could not connect to tikv");
2929

examples/raw.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ async fn main() -> Result<()> {
2828

2929
// When we first create a client we receive a `Connect` structure which must be resolved before
3030
// the client is actually connected and usable.
31-
let client = Client::new_with_config(args.pd, config, ApiV1, None).await?;
31+
let client = Client::new_with_config(args.pd, config, ApiV1::default(), None).await?;
3232

3333
// Requests are created from the connected client. These calls return structures which
3434
// implement `Future`. This means the `Future` must be resolved before the action ever takes

examples/transaction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ async fn main() {
8484
Config::default()
8585
};
8686

87-
let txn = Client::new_with_config(args.pd, config, ApiV1, None)
87+
let txn = Client::new_with_config(args.pd, config, ApiV1::default(), None)
8888
.await
8989
.expect("Could not connect to tikv");
9090

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
//! # fn main() -> Result<()> {
6969
//! # use tikv_client::raw::ApiV1;
7070
//! futures::executor::block_on(async {
71-
//! let client = RawClient::new(vec!["127.0.0.1:2379"], ApiV1, None).await?;
71+
//! let client = RawClient::new(vec!["127.0.0.1:2379"], ApiV1::default(), None).await?;
7272
//! client.put("key".to_owned(), "value".to_owned()).await?;
7373
//! let value = client.get("key".to_owned()).await?;
7474
//! # Ok(())
@@ -83,7 +83,7 @@
8383
//! # fn main() -> Result<()> {
8484
//! # use tikv_client::transaction::ApiV1;
8585
//! futures::executor::block_on(async {
86-
//! let txn_client = TransactionClient::new(vec!["127.0.0.1:2379"], ApiV1, None).await?;
86+
//! let txn_client = TransactionClient::new(vec!["127.0.0.1:2379"], ApiV1::default(), None).await?;
8787
//! let mut txn = txn_client.begin_optimistic().await?;
8888
//! txn.put("key".to_owned(), "value".to_owned()).await?;
8989
//! let value = txn.get("key".to_owned()).await?;

src/mock.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub async fn pd_rpc_client() -> PdRpcClient<ApiV1, MockKvConnect, MockCluster> {
4242
MockCluster,
4343
))
4444
},
45-
ApiV1,
45+
ApiV1::default(),
4646
logger,
4747
)
4848
.await
@@ -201,6 +201,6 @@ impl PdClient for MockPdClient {
201201
async fn invalidate_region_cache(&self, _ver_id: crate::region::RegionVerId) {}
202202

203203
fn get_request_codec(&self) -> Self::RequestCodec {
204-
ApiV1
204+
ApiV1::default()
205205
}
206206
}

src/raw/client.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl<C: RawCodec> Client<C> {
6464
/// # use futures::prelude::*;
6565
/// use tikv_client::raw::ApiV1;
6666
/// # futures::executor::block_on(async {
67-
/// let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None)
67+
/// let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None)
6868
/// .await
6969
/// .unwrap();
7070
/// # });
@@ -94,7 +94,7 @@ impl<C: RawCodec> Client<C> {
9494
/// let client = RawClient::new_with_config(
9595
/// vec!["192.168.0.100"],
9696
/// Config::default().with_timeout(Duration::from_secs(60)),
97-
/// ApiV1,
97+
/// ApiV1::default(),
9898
/// None,
9999
/// )
100100
/// .await
@@ -147,7 +147,7 @@ impl<C: RawCodec> Client<C> {
147147
/// # use std::convert::TryInto;
148148
/// use tikv_client::raw::ApiV1;
149149
/// # futures::executor::block_on(async {
150-
/// let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None)
150+
/// let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None)
151151
/// .await
152152
/// .unwrap()
153153
/// .with_cf(ColumnFamily::Write);
@@ -203,7 +203,7 @@ where
203203
/// # use futures::prelude::*;
204204
/// use tikv_client::raw::ApiV1;
205205
/// # futures::executor::block_on(async {
206-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
206+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
207207
/// let key = "TiKV".to_owned();
208208
/// let req = client.get(key);
209209
/// let result: Option<Value> = req.await.unwrap();
@@ -238,7 +238,7 @@ where
238238
/// # use futures::prelude::*;
239239
/// use tikv_client::raw::ApiV1;
240240
/// # futures::executor::block_on(async {
241-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
241+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
242242
/// let keys = vec!["TiKV".to_owned(), "TiDB".to_owned()];
243243
/// let req = client.batch_get(keys);
244244
/// let result: Vec<KvPair> = req.await.unwrap();
@@ -278,7 +278,7 @@ where
278278
/// # use futures::prelude::*;
279279
/// use tikv_client::raw::ApiV1;
280280
/// # futures::executor::block_on(async {
281-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
281+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
282282
/// let key = "TiKV".to_owned();
283283
/// let val = "TiKV".to_owned();
284284
/// let req = client.put(key, val);
@@ -317,7 +317,7 @@ where
317317
/// # use futures::prelude::*;
318318
/// use tikv_client::raw::ApiV1;
319319
/// # futures::executor::block_on(async {
320-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
320+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
321321
/// let kvpair1 = ("PD".to_owned(), "Go".to_owned());
322322
/// let kvpair2 = ("TiKV".to_owned(), "Rust".to_owned());
323323
/// let iterable = vec![kvpair1, kvpair2];
@@ -364,7 +364,7 @@ where
364364
/// # use futures::prelude::*;
365365
/// use tikv_client::raw::ApiV1;
366366
/// # futures::executor::block_on(async {
367-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
367+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
368368
/// let key = "TiKV".to_owned();
369369
/// let req = client.delete(key);
370370
/// let result: () = req.await.unwrap();
@@ -399,7 +399,7 @@ where
399399
/// # use futures::prelude::*;
400400
/// use tikv_client::raw::ApiV1;
401401
/// # futures::executor::block_on(async {
402-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
402+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
403403
/// let keys = vec!["TiKV".to_owned(), "TiDB".to_owned()];
404404
/// let req = client.batch_delete(keys);
405405
/// let result: () = req.await.unwrap();
@@ -437,7 +437,7 @@ where
437437
/// # use futures::prelude::*;
438438
/// use tikv_client::raw::ApiV1;
439439
/// # futures::executor::block_on(async {
440-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
440+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
441441
/// let inclusive_range = "TiKV"..="TiDB";
442442
/// let req = client.delete_range(inclusive_range.into_owned());
443443
/// let result: () = req.await.unwrap();
@@ -478,7 +478,7 @@ where
478478
/// # use futures::prelude::*;
479479
/// use tikv_client::raw::ApiV1;
480480
/// # futures::executor::block_on(async {
481-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
481+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
482482
/// let inclusive_range = "TiKV"..="TiDB";
483483
/// let req = client.scan(inclusive_range.into_owned(), 2);
484484
/// let result: Vec<KvPair> = req.await.unwrap();
@@ -513,7 +513,7 @@ where
513513
/// # use futures::prelude::*;
514514
/// use tikv_client::raw::ApiV1;
515515
/// # futures::executor::block_on(async {
516-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
516+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
517517
/// let inclusive_range = "TiKV"..="TiDB";
518518
/// let req = client.scan_keys(inclusive_range.into_owned(), 2);
519519
/// let result: Vec<Key> = req.await.unwrap();
@@ -556,7 +556,7 @@ where
556556
/// # use futures::prelude::*;
557557
/// use tikv_client::raw::ApiV1;
558558
/// # futures::executor::block_on(async {
559-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
559+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
560560
/// let inclusive_range1 = "TiDB"..="TiKV";
561561
/// let inclusive_range2 = "TiKV"..="TiSpark";
562562
/// let iterable = vec![inclusive_range1.into_owned(), inclusive_range2.into_owned()];
@@ -601,7 +601,7 @@ where
601601
/// # use futures::prelude::*;
602602
/// use tikv_client::raw::ApiV1;
603603
/// # futures::executor::block_on(async {
604-
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1, None).await.unwrap();
604+
/// # let client = RawClient::new(vec!["192.168.0.100"], ApiV1::default(), None).await.unwrap();
605605
/// let inclusive_range1 = "TiDB"..="TiKV";
606606
/// let inclusive_range2 = "TiKV"..="TiSpark";
607607
/// let iterable = vec![inclusive_range1.into_owned(), inclusive_range2.into_owned()];

src/raw/codec.rs

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,4 @@
1-
use tikv_client_proto::{kvrpcpb, metapb::Region};
1+
use crate::request::codec::{self, RawMode};
22

3-
use crate::{
4-
impl_request_codec_for_new_type,
5-
request::codec::{KeyMode, KeySpaceCodec, KeySpaceId, RawCodec, RequestCodec, TxnCodec},
6-
Result,
7-
};
8-
9-
#[derive(Clone)]
10-
pub struct ApiV1;
11-
12-
impl RequestCodec for ApiV1 {}
13-
14-
impl RawCodec for ApiV1 {}
15-
16-
#[derive(Clone)]
17-
pub struct Keyspace(KeySpaceCodec);
18-
19-
impl Keyspace {
20-
pub fn new(id: KeySpaceId) -> Self {
21-
Keyspace(KeySpaceCodec::new(KeyMode::Raw, id))
22-
}
23-
}
24-
25-
impl_request_codec_for_new_type!(Keyspace);
26-
27-
impl RawCodec for Keyspace {}
3+
pub type ApiV1 = codec::ApiV1<RawMode>;
4+
pub type ApiV2 = codec::ApiV2<RawMode>;

src/raw/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
1212
pub use self::{
1313
client::Client,
14-
codec::{ApiV1, Keyspace},
14+
codec::{ApiV1, ApiV2},
1515
};
1616
use crate::Error;
1717
use std::{convert::TryFrom, fmt};

src/region_cache.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ mod test {
331331
#[tokio::test]
332332
async fn cache_is_used() -> Result<()> {
333333
let retry_client = Arc::new(MockRetryClient::default());
334-
let cache = RegionCache::new(ApiV1, retry_client.clone());
334+
let cache = RegionCache::new(ApiV1::default(), retry_client.clone());
335335
retry_client.regions.lock().await.insert(
336336
1,
337337
RegionWithLeader {
@@ -401,7 +401,7 @@ mod test {
401401
#[tokio::test]
402402
async fn test_add_disjoint_regions() {
403403
let retry_client = Arc::new(MockRetryClient::default());
404-
let cache = RegionCache::new(ApiV1, retry_client.clone());
404+
let cache = RegionCache::new(ApiV1::default(), retry_client.clone());
405405
let region1 = region(1, vec![], vec![10]);
406406
let region2 = region(2, vec![10], vec![20]);
407407
let region3 = region(3, vec![30], vec![]);
@@ -420,7 +420,7 @@ mod test {
420420
#[tokio::test]
421421
async fn test_add_intersecting_regions() {
422422
let retry_client = Arc::new(MockRetryClient::default());
423-
let cache = RegionCache::new(ApiV1, retry_client.clone());
423+
let cache = RegionCache::new(ApiV1::default(), retry_client.clone());
424424

425425
cache.add_region(region(1, vec![], vec![10])).await;
426426
cache.add_region(region(2, vec![10], vec![20])).await;
@@ -458,7 +458,7 @@ mod test {
458458
#[tokio::test]
459459
async fn test_get_region_by_key() -> Result<()> {
460460
let retry_client = Arc::new(MockRetryClient::default());
461-
let cache = RegionCache::new(ApiV1, retry_client.clone());
461+
let cache = RegionCache::new(ApiV1::default(), retry_client.clone());
462462

463463
let region1 = region(1, vec![], vec![10]);
464464
let region2 = region(2, vec![10], vec![20]);

0 commit comments

Comments
 (0)