Kaynağa Gözat

Move kvraft to its own sub crate.

So that it could have tests of its own.
Jing Yang 4 yıl önce
ebeveyn
işleme
a0be30f158

+ 5 - 0
Cargo.toml

@@ -26,3 +26,8 @@ tokio = { version = "1.0", features = ["rt-multi-thread", "time", "parking_lot"]
 anyhow = "1.0"
 futures = { version = "0.3.8", features = ["thread-pool"] }
 scopeguard = "1.1.0"
+
+[workspace]
+members = [
+    "kvraft"
+]

+ 14 - 0
kvraft/Cargo.toml

@@ -0,0 +1,14 @@
+[package]
+name = "kvraft"
+version = "0.1.0"
+
+[dependencies]
+bincode = "1.3.1"
+bytes = "1.0"
+labrpc = { path = "../../labrpc" }
+parking_lot = "0.11.1"
+rand = "0.8"
+ruaft = { path = "../" }
+serde = "1.0.116"
+serde_derive = "1.0.116"
+tokio = { version = "1.0", features = ["rt-multi-thread", "time", "parking_lot"] }

+ 2 - 3
tests/kvraft/client.rs → kvraft/src/client.rs

@@ -1,8 +1,7 @@
 use super::common::{
-    GetArgs, GetReply, KVRaftOptions, PutAppendArgs, PutAppendReply,
-    UniqueIdSequence, GET, PUT_APPEND,
+    GetArgs, GetReply, KVRaftOptions, PutAppendArgs, PutAppendEnum,
+    PutAppendReply, UniqueIdSequence, GET, PUT_APPEND,
 };
-use crate::kvraft::common::PutAppendEnum;
 use labrpc::{Client, RequestMessage};
 use serde::de::DeserializeOwned;
 use serde::Serialize;

+ 0 - 0
tests/kvraft/common.rs → kvraft/src/common.rs


+ 11 - 0
kvraft/src/lib.rs

@@ -0,0 +1,11 @@
+extern crate labrpc;
+extern crate parking_lot;
+extern crate rand;
+extern crate ruaft;
+extern crate serde;
+#[macro_use]
+extern crate serde_derive;
+
+mod client;
+mod common;
+mod server;

+ 3 - 3
tests/kvraft/server.rs → kvraft/src/server.rs

@@ -1,6 +1,6 @@
-use super::common::{ClerkId, UniqueId};
-use crate::kvraft::common::{
-    GetArgs, GetReply, KVError, PutAppendArgs, PutAppendEnum, PutAppendReply,
+use super::common::{
+    ClerkId, GetArgs, GetReply, KVError, PutAppendArgs, PutAppendEnum,
+    PutAppendReply, UniqueId,
 };
 use parking_lot::{Condvar, Mutex};
 use ruaft::{Persister, Raft, RpcClient};

+ 0 - 3
tests/kvraft/mod.rs

@@ -1,3 +0,0 @@
-mod client;
-mod common;
-mod server;