SYMBOL INDEX (869 symbols across 94 files) FILE: courses/dss/labcodec/build.rs function main (line 1) | fn main() { FILE: courses/dss/labcodec/demonstration/expanded_fixture.rs type Msg (line 2) | pub struct Msg { method clone (line 16) | fn clone(&self) -> Msg { method eq (line 37) | fn eq(&self, other: &Msg) -> bool { method ne (line 60) | fn ne(&self, other: &Msg) -> bool { method encode_raw (line 85) | fn encode_raw(&self, buf: &mut B) method merge_field (line 101) | fn merge_field( method encoded_len (line 147) | fn encoded_len(&self) -> usize { method clear (line 162) | fn clear(&mut self) { method fmt (line 180) | fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { method r#type (line 240) | pub fn r#type(&self) -> msg::Type { method set_type (line 244) | pub fn set_type(&mut self, value: msg::Type) { method default (line 170) | fn default() -> Msg { type Type (line 250) | pub enum Type { method clone (line 260) | fn clone(&self) -> Type { method fmt (line 272) | fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { method eq (line 298) | fn eq(&self, other: &Type) -> bool { method assert_receiver_is_total_eq (line 318) | fn assert_receiver_is_total_eq(&self) -> () { method hash (line 325) | fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { method partial_cmp (line 338) | fn partial_cmp(&self, other: &Type) -> ::core::option::Option<::core::... method cmp (line 356) | fn cmp(&self, other: &Type) -> ::core::cmp::Ordering { method is_valid (line 372) | pub fn is_valid(value: i32) -> bool { method from_i32 (line 382) | pub fn from_i32(value: i32) -> ::std::option::Option { method default (line 393) | fn default() -> Type { function from (line 398) | fn from(value: Type) -> i32 { FILE: courses/dss/labcodec/src/lib.rs type Message (line 4) | pub trait Message: prost::Message + Default {} type EncodeError (line 8) | pub type EncodeError = prost::EncodeError; type DecodeError (line 10) | pub type DecodeError = prost::DecodeError; function encode (line 13) | pub fn encode(message: &M, buf: &mut Vec) -> Result<(), ... function decode (line 20) | pub fn decode(buf: &[u8]) -> Result { function test_basic_encode_decode (line 61) | fn test_basic_encode_decode() { function test_default (line 75) | fn test_default() { FILE: courses/dss/labrpc/benches/rpc.rs type BenchArgs (line 20) | pub struct BenchArgs { type BenchReply (line 26) | pub struct BenchReply { type BenchInner (line 32) | struct BenchInner { type BenchService (line 36) | pub struct BenchService { method new (line 40) | fn new() -> BenchService { method handler (line 49) | async fn handler(&self, args: BenchArgs) -> Result { function bench_suit (line 57) | fn bench_suit() -> (Network, Server, BenchService) { function bench_rpc (line 68) | fn bench_rpc(c: &mut Criterion) { FILE: courses/dss/labrpc/examples/echo.rs type Echo (line 8) | pub struct Echo { type EchoService (line 21) | struct EchoService; method ping (line 25) | async fn ping(&self, input: Echo) -> Result { function main (line 30) | fn main() { FILE: courses/dss/labrpc/src/client.rs type Rpc (line 12) | pub struct Rpc { method take_resp_sender (line 21) | pub(crate) fn take_resp_sender(&mut self) -> Option fmt::Result { type RpcHooks (line 35) | pub trait RpcHooks: Sync + Send + 'static { method before_dispatch (line 36) | fn before_dispatch(&self, fq_name: &str, req: &[u8]) -> Result<()>; method after_dispatch (line 37) | fn after_dispatch(&self, fq_name: &str, resp: Result>) -> Resu... type Client (line 41) | pub struct Client { method call (line 52) | pub fn call(&self, fq_name: &'static str, req: &Req) -> RpcF... method set_hooks (line 85) | pub fn set_hooks(&self, hooks: Arc) { method clear_hooks (line 89) | pub fn clear_hooks(&self) { FILE: courses/dss/labrpc/src/error.rs type Error (line 8) | pub enum Error { method fmt (line 19) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { method source (line 25) | fn source(&self) -> Option<&(dyn error::Error + 'static)> { type Result (line 35) | pub type Result = result::Result; FILE: courses/dss/labrpc/src/lib.rs type JunkArgs (line 43) | pub struct JunkArgs { type JunkReply (line 48) | pub struct JunkReply { type JunkInner (line 54) | struct JunkInner { type JunkService (line 58) | struct JunkService { method new (line 62) | fn new() -> JunkService { method handler2 (line 70) | async fn handler2(&self, args: JunkArgs) -> Result { method handler3 (line 76) | async fn handler3(&self, args: JunkArgs) -> Result { method handler4 (line 82) | async fn handler4(&self, _: JunkArgs) -> Result { function init_logger (line 89) | fn init_logger() { function test_service_dispatch (line 95) | fn test_service_dispatch() { function test_network_client_rpc (line 128) | fn test_network_client_rpc() { function junk_suit (line 186) | fn junk_suit() -> (Network, Server, JunkService) { function test_basic (line 198) | fn test_basic() { function test_disconnect (line 218) | fn test_disconnect() { function test_count (line 241) | fn test_count() { function test_concurrent_many (line 260) | fn test_concurrent_many() { function test_unreliable (line 304) | fn test_unreliable() { function test_concurrent_one (line 348) | fn test_concurrent_one() { function test_regression1 (line 397) | fn test_regression1() { function test_killed (line 460) | fn test_killed() { type Hooks (line 484) | struct Hooks { method before_dispatch (line 489) | fn before_dispatch(&self, _: &str, _: &[u8]) -> Result<()> { method after_dispatch (line 496) | fn after_dispatch(&self, _: &str, resp: Result>) -> Result Network { method create (line 62) | pub fn create() -> (Network, UnboundedReceiver) { method start (line 84) | fn start(&self, mut incoming: UnboundedReceiver) { method add_server (line 100) | pub fn add_server(&self, server: Server) { method delete_server (line 105) | pub fn delete_server(&self, name: &str) { method create_client (line 112) | pub fn create_client(&self, name: String) -> Client { method connect (line 127) | pub fn connect(&self, client_name: &str, server_name: &str) { method enable (line 134) | pub fn enable(&self, client_name: &str, enabled: bool) { method set_reliable (line 144) | pub fn set_reliable(&self, yes: bool) { method set_long_reordering (line 148) | pub fn set_long_reordering(&self, yes: bool) { method set_long_delays (line 152) | pub fn set_long_delays(&self, yes: bool) { method count (line 156) | pub fn count(&self, server_name: &str) -> usize { method total_count (line 161) | pub fn total_count(&self) -> usize { method end_info (line 165) | fn end_info(&self, client_name: &str) -> EndInfo { method is_server_dead (line 179) | fn is_server_dead(&self, client_name: &str, server_name: &str, server_... method process_rpc (line 187) | async fn process_rpc(&self, rpc: Rpc) -> Result> { method spawn (line 256) | pub fn spawn(&self, f: F) method spawn_poller (line 264) | pub fn spawn_poller(&self, f: F) function process_rpc (line 272) | async fn process_rpc( function server_dead (line 344) | async fn server_dead( FILE: courses/dss/labrpc/src/server.rs type RpcFuture (line 12) | pub type RpcFuture = BoxFuture<'static, T>; type Handler (line 14) | pub type Handler = dyn FnOnce(&[u8]) -> RpcFuture>>; type HandlerFactory (line 16) | pub trait HandlerFactory: Sync + Send + 'static { method handler (line 17) | fn handler(&self, name: &'static str) -> Box; type ServerBuilder (line 20) | pub struct ServerBuilder { method new (line 27) | pub fn new(name: String) -> ServerBuilder { method add_service (line 34) | pub fn add_service( method build (line 51) | pub fn build(self) -> Server { type ServerCore (line 63) | pub(crate) struct ServerCore { type Server (line 72) | pub struct Server { method count (line 77) | pub fn count(&self) -> usize { method name (line 81) | pub fn name(&self) -> &str { method dispatch (line 85) | pub(crate) fn dispatch(&self, fq_name: &'static str, req: &[u8]) -> Rp... method fmt (line 119) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { FILE: courses/dss/linearizability/src/bitset.rs type Bitset (line 4) | pub struct Bitset(Vec); method new (line 7) | pub fn new(bits: usize) -> Self { method set (line 12) | pub fn set(&mut self, pos: usize) { method clear (line 17) | pub fn clear(&mut self, pos: usize) { method popcnt (line 22) | fn popcnt(&self) -> usize { method hash (line 35) | pub fn hash(&self) -> u64 { method equals (line 43) | pub fn equals(&self, b2: &Bitset) -> bool { function bitset_index (line 58) | fn bitset_index(pos: usize) -> (usize, usize) { FILE: courses/dss/linearizability/src/lib.rs type EntryKind (line 18) | enum EntryKind { type Entry (line 23) | struct Entry { function make_entries (line 30) | fn make_entries(history: Operations) -> Vec { function new (line 55) | pub fn new() -> Self { function head (line 59) | pub fn head(&self) -> Option> { function from_entries (line 63) | pub fn from_entries(entries: Vec>) -> Self { function len (line 93) | pub fn len(&self) -> usize { function push_front (line 103) | pub fn push_front(&mut self, new_head: LinkNode) { type LinkNode (line 117) | type LinkNode = Rc>>; type Node (line 119) | struct Node { function renumber (line 127) | fn renumber(events: Vec>) -> Vec> { function convert_entries (line 144) | fn convert_entries(events: Vec>) -> Vec> { type CacheEntry (line 165) | struct CacheEntry { function cache_contains (line 170) | fn cache_contains( type CallsEntry (line 185) | struct CallsEntry { function lift (line 190) | fn lift(entry: &LinkNode) { function unlift (line 205) | fn unlift(entry: &LinkNode) { function check_single (line 222) | fn check_single( function check_operations (line 294) | pub fn check_operations(model: M, history: Operations( function check_events (line 329) | pub fn check_events(model: M, history: Events( function wait_res (line 364) | fn wait_res( FILE: courses/dss/linearizability/src/model.rs type Value (line 7) | pub enum Value { function input (line 14) | pub fn input(&self) -> &I { function output (line 22) | pub fn output(&self) -> &O { type Operation (line 32) | pub struct Operation { type EventKind (line 39) | pub enum EventKind { type Event (line 44) | pub struct Event { type Operations (line 50) | pub type Operations = Vec>; type Events (line 51) | pub type Events = Vec>>; type Model (line 53) | pub trait Model: Clone + Send + 'static { method partition (line 62) | fn partition( method partition_event (line 69) | fn partition_event( method init (line 77) | fn init(&self) -> Self::State; method step (line 82) | fn step( method equal (line 91) | fn equal(&self, state1: &Self::State, state2: &Self::State) -> bool { FILE: courses/dss/linearizability/src/models.rs type Op (line 6) | pub enum Op { type KvInput (line 13) | pub struct KvInput { type KvOutput (line 20) | pub struct KvOutput { type KvModel (line 25) | pub struct KvModel {} type State (line 28) | type State = String; type Input (line 29) | type Input = KvInput; type Output (line 30) | type Output = KvOutput; method partition (line 32) | fn partition( method partition_event (line 48) | fn partition_event( method init (line 74) | fn init(&self) -> Self::State { method step (line 80) | fn step( function check_kv (line 105) | fn check_kv(log_name: String, correct: bool) { function parse_kv_log (line 116) | fn parse_kv_log( function test_kv_1client_ok (line 238) | fn test_kv_1client_ok() { function test_kv_1client_bad (line 243) | fn test_kv_1client_bad() { function test_kv_10client_ok (line 248) | fn test_kv_10client_ok() { function test_kv_10client_bad (line 253) | fn test_kv_10client_bad() { function test_kv_50client_ok (line 258) | fn test_kv_50client_ok() { function test_kv_50client_bad (line 263) | fn test_kv_50client_bad() { FILE: courses/dss/percolator/build.rs function main (line 1) | fn main() { FILE: courses/dss/percolator/src/client.rs constant BACKOFF_TIME_MS (line 12) | const BACKOFF_TIME_MS: u64 = 100; constant RETRY_TIMES (line 14) | const RETRY_TIMES: usize = 3; type Client (line 20) | pub struct Client { method new (line 26) | pub fn new(tso_client: TSOClient, txn_client: TransactionClient) -> Cl... method get_timestamp (line 32) | pub fn get_timestamp(&self) -> Result { method begin (line 38) | pub fn begin(&mut self) { method get (line 44) | pub fn get(&self, key: Vec) -> Result> { method set (line 50) | pub fn set(&mut self, key: Vec, value: Vec) { method commit (line 56) | pub fn commit(&self) -> Result { FILE: courses/dss/percolator/src/server.rs constant TTL (line 12) | const TTL: u64 = Duration::from_millis(100).as_nanos() as u64; type TimestampOracle (line 15) | pub struct TimestampOracle { method get_timestamp (line 22) | async fn get_timestamp(&self, _: TimestampRequest) -> labrpc::Result, u64); type Value (line 32) | pub enum Value { type Write (line 38) | pub struct Write(Vec, Vec); type Column (line 40) | pub enum Column { type KvTable (line 49) | pub struct KvTable { method read (line 59) | fn read( method write (line 72) | fn write(&mut self, key: Vec, column: Column, ts: u64, value: Valu... method erase (line 79) | fn erase(&mut self, key: Vec, column: Column, commit_ts: u64) { type MemoryStorage (line 88) | pub struct MemoryStorage { method get (line 95) | async fn get(&self, req: GetRequest) -> labrpc::Result { method prewrite (line 101) | async fn prewrite(&self, req: PrewriteRequest) -> labrpc::Result labrpc::Result) { FILE: courses/dss/percolator/src/tests.rs type CommitHooks (line 15) | struct CommitHooks { method before_dispatch (line 22) | fn before_dispatch(&self, fq_name: &str, req: &[u8]) -> Result<()> { method after_dispatch (line 32) | fn after_dispatch(&self, fq_name: &str, resp: Result>) -> Result... function init_logger (line 40) | fn init_logger() { function init (line 46) | fn init(num_clinet: usize) -> (Network, Vec, Arc) { function test_get_timestamp_under_unreliable_network (line 89) | fn test_get_timestamp_under_unreliable_network() { function test_predicate_many_preceders_read_predicates (line 121) | fn test_predicate_many_preceders_read_predicates() { function test_predicate_many_preceders_write_predicates (line 144) | fn test_predicate_many_preceders_write_predicates() { function test_lost_update (line 170) | fn test_lost_update() { function test_read_skew_read_only (line 196) | fn test_read_skew_read_only() { function test_read_skew_predicate_dependencies (line 224) | fn test_read_skew_predicate_dependencies() { function test_read_skew_write_predicate (line 250) | fn test_read_skew_write_predicate() { function test_write_skew (line 279) | fn test_write_skew() { function test_anti_dependency_cycles (line 308) | fn test_anti_dependency_cycles() { function test_commit_primary_drop_secondary_requests (line 336) | fn test_commit_primary_drop_secondary_requests() { function test_commit_primary_success (line 355) | fn test_commit_primary_success() { function test_commit_primary_success_without_response (line 374) | fn test_commit_primary_success_without_response() { function test_commit_primary_fail (line 393) | fn test_commit_primary_fail() { FILE: courses/dss/raft/build.rs function main (line 1) | fn main() { FILE: courses/dss/raft/src/kvraft/client.rs type Op (line 5) | enum Op { type Clerk (line 10) | pub struct Clerk { method fmt (line 17) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method new (line 23) | pub fn new(name: String, servers: Vec) -> Clerk { method get (line 35) | pub fn get(&self, key: String) -> String { method put_append (line 44) | fn put_append(&self, op: Op) { method put (line 49) | pub fn put(&self, key: String, value: String) { method append (line 53) | pub fn append(&self, key: String, value: String) { FILE: courses/dss/raft/src/kvraft/config.rs function uniqstring (line 17) | fn uniqstring() -> String { type Servers (line 21) | struct Servers { function init_logger (line 27) | fn init_logger() { type Config (line 33) | pub struct Config { method new (line 54) | pub fn new(n: usize, unreliable: bool, maxraftstate: Option) ->... method op (line 88) | pub fn op(&self) { method rpc_total (line 92) | fn rpc_total(&self) -> usize { method check_timeout (line 96) | pub fn check_timeout(&self) { method log_size (line 104) | pub fn log_size(&self) -> usize { method snapshot_size (line 117) | pub fn snapshot_size(&self) -> usize { method connect (line 130) | fn connect(&self, i: usize, to: &[usize], servers: &Servers) { method disconnect (line 146) | fn disconnect(&self, i: usize, from: &[usize], servers: &Servers) { method all (line 165) | pub fn all(&self) -> Vec { method connect_all (line 169) | pub fn connect_all(&self) { method partition (line 177) | pub fn partition(&self, p1: &[usize], p2: &[usize]) { method make_client (line 193) | pub fn make_client(&self, to: &[usize]) -> client::Clerk { method delete_client (line 214) | pub fn delete_client(&self, ck: &client::Clerk) { method connect_client (line 218) | pub fn connect_client(&self, ck: &client::Clerk, to: &[usize]) { method connect_client_by_name (line 222) | pub fn connect_client_by_name(&self, ck_name: &str, to: &[usize]) { method shutdown_server (line 233) | pub fn shutdown_server(&self, i: usize) { method start_server (line 260) | pub fn start_server(&self, i: usize) { method leader (line 295) | pub fn leader(&self) -> Result { method make_partition (line 308) | pub fn make_partition(&self) -> (Vec, Vec) { method begin (line 328) | pub fn begin(&self, description: &str) { method end (line 340) | pub fn end(&self) { method drop (line 358) | fn drop(&mut self) { FILE: courses/dss/raft/src/kvraft/errors.rs type Error (line 4) | pub enum Error { method fmt (line 9) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method source (line 15) | fn source(&self) -> Option<&(dyn error::Error + 'static)> { type Result (line 22) | pub type Result = result::Result; FILE: courses/dss/raft/src/kvraft/server.rs type KvServer (line 6) | pub struct KvServer { method new (line 15) | pub fn new( method __suppress_deadcode (line 33) | pub fn __suppress_deadcode(&mut self) { type Node (line 54) | pub struct Node { method new (line 59) | pub fn new(kv: KvServer) -> Node { method kill (line 68) | pub fn kill(&self) { method term (line 78) | pub fn term(&self) -> u64 { method is_leader (line 83) | pub fn is_leader(&self) -> bool { method get_state (line 87) | pub fn get_state(&self) -> raft::State { method get (line 98) | async fn get(&self, arg: GetRequest) -> labrpc::Result { method put_append (line 104) | async fn put_append(&self, arg: PutAppendRequest) -> labrpc::Result String { function put (line 36) | fn put(cfg: &Config, ck: &Clerk, key: &str, value: &str) { function append (line 41) | fn append(cfg: &Config, ck: &Clerk, key: &str, value: &str) { function check (line 46) | fn check(cfg: &Config, ck: &Clerk, key: &str, value: &str) { function spawn_clients_and_wait (line 54) | fn spawn_clients_and_wait( function next_value (line 85) | fn next_value(prev: String, val: &str) -> String { function check_clnt_appends (line 91) | fn check_clnt_appends(clnt: usize, v: String, count: usize) { function check_concurrent_appends (line 119) | fn check_concurrent_appends(v: String, counts: &[usize]) { function partitioner (line 148) | fn partitioner( function generic_test (line 189) | fn generic_test( function generic_test_linearizability (line 359) | fn generic_test_linearizability( function test_basic_3a (line 558) | fn test_basic_3a() { function test_concurrent_3a (line 564) | fn test_concurrent_3a() { function test_unreliable_3a (line 570) | fn test_unreliable_3a() { function test_unreliable_one_key_3a (line 576) | fn test_unreliable_one_key_3a() { function test_one_partition_3a (line 617) | fn test_one_partition_3a() { function test_many_partitions_one_client_3a (line 738) | fn test_many_partitions_one_client_3a() { function test_many_partitions_many_clients_3a (line 744) | fn test_many_partitions_many_clients_3a() { function test_persist_one_client_3a (line 750) | fn test_persist_one_client_3a() { function test_persist_concurrent_3a (line 756) | fn test_persist_concurrent_3a() { function test_persist_concurrent_unreliable_3a (line 762) | fn test_persist_concurrent_unreliable_3a() { function test_persist_partition_3a (line 768) | fn test_persist_partition_3a() { function test_persist_partition_unreliable_3a (line 774) | fn test_persist_partition_unreliable_3a() { function test_persist_partition_unreliable_linearizable_3a (line 780) | fn test_persist_partition_unreliable_linearizable_3a() { function test_snapshot_rpc_3b (line 790) | fn test_snapshot_rpc_3b() { function test_snapshot_size_3b (line 852) | fn test_snapshot_size_3b() { function test_snapshot_recover_3b (line 893) | fn test_snapshot_recover_3b() { function test_snapshot_recover_many_clients_3b (line 899) | fn test_snapshot_recover_many_clients_3b() { function test_snapshot_unreliable_3b (line 905) | fn test_snapshot_unreliable_3b() { function test_snapshot_unreliable_recover_3b (line 911) | fn test_snapshot_unreliable_recover_3b() { function test_snapshot_unreliable_recover_concurrent_partition_3b (line 917) | fn test_snapshot_unreliable_recover_concurrent_partition_3b() { function test_snapshot_unreliable_recover_concurrent_partition_linearizable_3b (line 923) | fn test_snapshot_unreliable_recover_concurrent_partition_linearizable_3b... FILE: courses/dss/raft/src/lib.rs function your_code_here (line 13) | fn your_code_here(_: T) -> ! { FILE: courses/dss/raft/src/raft/config.rs constant SNAPSHOT_INTERVAL (line 16) | pub const SNAPSHOT_INTERVAL: u64 = 10; function uniqstring (line 18) | fn uniqstring() -> String { type Entry (line 25) | pub struct Entry { type Storage (line 30) | pub struct Storage { method n_committed (line 39) | pub fn n_committed(&self, index: u64) -> (usize, Option) { function init_logger (line 59) | fn init_logger() { type Config (line 65) | pub struct Config { method new (line 92) | pub fn new(n: usize) -> Config { method new_with (line 96) | pub fn new_with(n: usize, unreliable: bool, snapshot: bool) -> Config { method rpc_count (line 139) | pub fn rpc_count(&self, server: usize) -> usize { method rpc_total (line 143) | fn rpc_total(&self) -> usize { method log_size (line 148) | pub fn log_size(&self) -> usize { method check_one_leader (line 158) | pub fn check_one_leader(&self) -> usize { method check_terms (line 199) | pub fn check_terms(&self) -> u64 { method check_no_leader (line 215) | pub fn check_no_leader(&self) { method check_timeout (line 226) | pub fn check_timeout(&self) { method n_committed (line 234) | pub fn n_committed(&self, index: u64) -> (usize, Option) { method wait (line 241) | pub fn wait(&self, index: u64, n: usize, start_term: Option) -> O... method one (line 283) | pub fn one(&self, cmd: Entry, expected_servers: usize, retry: bool) ->... method begin (line 335) | pub fn begin(&mut self, description: &str) { method end (line 348) | pub fn end(&self) { method start1 (line 371) | pub fn start1(&mut self, i: usize) { method start1_snapshot (line 375) | pub fn start1_snapshot(&mut self, i: usize) { method start1_ext (line 379) | fn start1_ext(&mut self, i: usize, snapshot: bool) { method crash1 (line 465) | pub fn crash1(&mut self, i: usize) { method disconnect (line 486) | pub fn disconnect(&mut self, i: usize) { method connect (line 504) | pub fn connect(&mut self, i: usize) { method drop (line 528) | fn drop(&mut self) { FILE: courses/dss/raft/src/raft/errors.rs type Error (line 4) | pub enum Error { method fmt (line 12) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method source (line 18) | fn source(&self) -> Option<&(dyn error::Error + 'static)> { type Result (line 28) | pub type Result = result::Result; FILE: courses/dss/raft/src/raft/mod.rs type ApplyMsg (line 20) | pub enum ApplyMsg { type State (line 35) | pub struct State { method term (line 42) | pub fn term(&self) -> u64 { method is_leader (line 46) | pub fn is_leader(&self) -> bool { type Raft (line 52) | pub struct Raft { method new (line 74) | pub fn new( method persist (line 99) | fn persist(&mut self) { method restore (line 108) | fn restore(&mut self, data: &[u8]) { method send_request_vote (line 142) | fn send_request_vote( method start (line 163) | fn start(&self, command: &M) -> Result<(u64, u64)> method cond_install_snapshot (line 181) | fn cond_install_snapshot( method snapshot (line 191) | fn snapshot(&mut self, index: u64, snapshot: &[u8]) { method __suppress_deadcode (line 200) | pub fn __suppress_deadcode(&mut self) { type Node (line 228) | pub struct Node { method new (line 234) | pub fn new(raft: Raft) -> Node { method start (line 251) | pub fn start(&self, command: &M) -> Result<(u64, u64)> method term (line 262) | pub fn term(&self) -> u64 { method is_leader (line 270) | pub fn is_leader(&self) -> bool { method get_state (line 278) | pub fn get_state(&self) -> State { method kill (line 293) | pub fn kill(&self) { method cond_install_snapshot (line 301) | pub fn cond_install_snapshot( method snapshot (line 317) | pub fn snapshot(&self, index: u64, snapshot: &[u8]) { method request_vote (line 330) | async fn request_vote(&self, args: RequestVoteArgs) -> labrpc::Result Vec; method save_raft_state (line 12) | fn save_raft_state(&self, state: Vec); method save_state_and_snapshot (line 13) | fn save_state_and_snapshot(&self, state: Vec, snapshot: Vec); method snapshot (line 14) | fn snapshot(&self) -> Vec; method raft_state (line 18) | fn raft_state(&self) -> Vec { method save_raft_state (line 21) | fn save_raft_state(&self, state: Vec) { method save_state_and_snapshot (line 24) | fn save_state_and_snapshot(&self, state: Vec, snapshot: Vec) { method snapshot (line 27) | fn snapshot(&self) -> Vec { method raft_state (line 33) | fn raft_state(&self) -> Vec { method save_raft_state (line 36) | fn save_raft_state(&self, state: Vec) { method save_state_and_snapshot (line 39) | fn save_state_and_snapshot(&self, state: Vec, snapshot: Vec) { method snapshot (line 42) | fn snapshot(&self) -> Vec { method raft_state (line 64) | fn raft_state(&self) -> Vec { method save_raft_state (line 68) | fn save_raft_state(&self, state: Vec) { method save_state_and_snapshot (line 72) | fn save_state_and_snapshot(&self, state: Vec, snapshot: Vec) { method snapshot (line 77) | fn snapshot(&self) -> Vec { type SimplePersister (line 48) | pub struct SimplePersister { method new (line 56) | pub fn new() -> SimplePersister { function test_object_safety (line 87) | fn test_object_safety() { FILE: courses/dss/raft/src/raft/tests.rs constant RAFT_ELECTION_TIMEOUT (line 19) | const RAFT_ELECTION_TIMEOUT: Duration = Duration::from_millis(1000); function random_entry (line 21) | fn random_entry(rnd: &mut ThreadRng) -> Entry { function test_initial_election_2a (line 28) | fn test_initial_election_2a() { function test_reelection_2a (line 56) | fn test_reelection_2a() { function test_many_election_2a (line 90) | fn test_many_election_2a() { function test_basic_agree_2b (line 124) | fn test_basic_agree_2b() { function test_fail_agree_2b (line 146) | fn test_fail_agree_2b() { function test_fail_no_agree_2b (line 177) | fn test_fail_no_agree_2b() { function test_concurrent_starts_2b (line 229) | fn test_concurrent_starts_2b() { function test_rejoin_2b (line 327) | fn test_rejoin_2b() { function test_backup_2b (line 374) | fn test_backup_2b() { function test_count_2b (line 453) | fn test_count_2b() { function test_persist1_2c (line 582) | fn test_persist1_2c() { function test_persist2_2c (line 628) | fn test_persist2_2c() { function test_persist3_2c (line 674) | fn test_persist3_2c() { function test_figure_8_2c (line 712) | fn test_figure_8_2c() { function test_unreliable_agree_2c (line 769) | fn test_unreliable_agree_2c() { function test_figure_8_unreliable_2c (line 813) | fn test_figure_8_unreliable_2c() { function internal_churn (line 888) | fn internal_churn(unreliable: bool) { function test_reliable_churn_2c (line 1041) | fn test_reliable_churn_2c() { function test_unreliable_churn_2c (line 1046) | fn test_unreliable_churn_2c() { function snap_common (line 1050) | fn snap_common(name: &str, disconnect: bool, reliable: bool, crash: bool) { function test_snapshot_basic_2d (line 1109) | fn test_snapshot_basic_2d() { function test_snapshot_install_2d (line 1114) | fn test_snapshot_install_2d() { function test_snapshot_install_unreliable_2d (line 1124) | fn test_snapshot_install_unreliable_2d() { function test_snapshot_install_crash_2d (line 1134) | fn test_snapshot_install_crash_2d() { function test_snapshot_install_unreliable_crash_2d (line 1139) | fn test_snapshot_install_unreliable_crash_2d() { FILE: courses/rust/projects/project-1/src/bin/kvs.rs function main (line 4) | fn main() { FILE: courses/rust/projects/project-1/src/kv.rs type KvStore (line 17) | pub struct KvStore { method new (line 23) | pub fn new() -> KvStore { method set (line 32) | pub fn set(&mut self, key: String, value: String) { method get (line 39) | pub fn get(&self, key: String) -> Option { method remove (line 44) | pub fn remove(&mut self, key: String) { FILE: courses/rust/projects/project-1/tests/tests.rs function cli_no_args (line 8) | fn cli_no_args() { function cli_version (line 14) | fn cli_version() { function cli_get (line 24) | fn cli_get() { function cli_set (line 35) | fn cli_set() { function cli_rm (line 46) | fn cli_rm() { function cli_invalid_get (line 56) | fn cli_invalid_get() { function cli_invalid_set (line 71) | fn cli_invalid_set() { function cli_invalid_rm (line 92) | fn cli_invalid_rm() { function cli_invalid_subcommand (line 107) | fn cli_invalid_subcommand() { function get_stored_value (line 117) | fn get_stored_value() { function overwrite_value (line 129) | fn overwrite_value() { function get_non_existent_value (line 141) | fn get_non_existent_value() { function remove_key (line 149) | fn remove_key() { FILE: courses/rust/projects/project-2/src/bin/kvs.rs function main (line 6) | fn main() -> Result<()> { FILE: courses/rust/projects/project-2/src/error.rs type KvsError (line 6) | pub enum KvsError { method from (line 23) | fn from(err: io::Error) -> KvsError { method from (line 29) | fn from(err: serde_json::Error) -> KvsError { type Result (line 35) | pub type Result = std::result::Result; FILE: courses/rust/projects/project-2/src/kv.rs constant COMPACTION_THRESHOLD (line 13) | const COMPACTION_THRESHOLD: u64 = 1024 * 1024; type KvStore (line 32) | pub struct KvStore { method open (line 54) | pub fn open(path: impl Into) -> Result { method set (line 90) | pub fn set(&mut self, key: String, value: String) -> Result<()> { method get (line 117) | pub fn get(&mut self, key: String) -> Result> { method remove (line 142) | pub fn remove(&mut self, key: String) -> Result<()> { method compact (line 158) | pub fn compact(&mut self) -> Result<()> { method new_log_file (line 202) | fn new_log_file(&mut self, gen: u64) -> Result> { function new_log_file (line 210) | fn new_log_file( function sorted_gen_list (line 228) | fn sorted_gen_list(path: &Path) -> Result> { function load (line 247) | fn load( function log_path (line 278) | fn log_path(dir: &Path, gen: u64) -> PathBuf { type Command (line 284) | enum Command { method set (line 290) | fn set(key: String, value: String) -> Command { method remove (line 294) | fn remove(key: String) -> Command { type CommandPos (line 300) | struct CommandPos { method from (line 307) | fn from((gen, range): (u64, Range)) -> Self { type BufReaderWithPos (line 316) | struct BufReaderWithPos { function new (line 322) | fn new(mut inner: R) -> Result { method read (line 332) | fn read(&mut self, buf: &mut [u8]) -> io::Result { method seek (line 340) | fn seek(&mut self, pos: SeekFrom) -> io::Result { type BufWriterWithPos (line 346) | struct BufWriterWithPos { function new (line 352) | fn new(mut inner: W) -> Result { method write (line 362) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 368) | fn flush(&mut self) -> io::Result<()> { method seek (line 374) | fn seek(&mut self, pos: SeekFrom) -> io::Result { FILE: courses/rust/projects/project-2/tests/tests.rs function cli_no_args (line 11) | fn cli_no_args() { function cli_version (line 17) | fn cli_version() { function cli_get_non_existent_key (line 27) | fn cli_get_non_existent_key() { function cli_rm_non_existent_key (line 40) | fn cli_rm_non_existent_key() { function cli_set (line 53) | fn cli_set() { function cli_get_stored (line 65) | fn cli_get_stored() -> Result<()> { function cli_rm_stored (line 94) | fn cli_rm_stored() -> Result<()> { function cli_invalid_get (line 121) | fn cli_invalid_get() { function cli_invalid_set (line 136) | fn cli_invalid_set() { function cli_invalid_rm (line 157) | fn cli_invalid_rm() { function cli_invalid_subcommand (line 172) | fn cli_invalid_subcommand() { function get_stored_value (line 182) | fn get_stored_value() -> Result<()> { function overwrite_value (line 203) | fn overwrite_value() -> Result<()> { function get_non_existent_value (line 224) | fn get_non_existent_value() -> Result<()> { function remove_non_existent_key (line 240) | fn remove_non_existent_key() -> Result<()> { function remove_key (line 248) | fn remove_key() -> Result<()> { function compaction (line 260) | fn compaction() -> Result<()> { FILE: courses/rust/projects/project-3/benches/engine_bench.rs function set_bench (line 7) | fn set_bench(c: &mut Criterion) { function get_bench (line 40) | fn get_bench(c: &mut Criterion) { FILE: courses/rust/projects/project-3/src/bin/kvs-client.rs constant DEFAULT_LISTENING_ADDRESS (line 7) | const DEFAULT_LISTENING_ADDRESS: &str = "127.0.0.1:4000"; constant ADDRESS_FORMAT (line 8) | const ADDRESS_FORMAT: &str = "IP:PORT"; type Opt (line 17) | struct Opt { type Command (line 23) | enum Command { function main (line 67) | fn main() { function run (line 75) | fn run(opt: Opt) -> Result<()> { FILE: courses/rust/projects/project-3/src/bin/kvs-server.rs constant DEFAULT_LISTENING_ADDRESS (line 11) | const DEFAULT_LISTENING_ADDRESS: &str = "127.0.0.1:4000"; constant DEFAULT_ENGINE (line 12) | const DEFAULT_ENGINE: Engine = Engine::kvs; type Opt (line 16) | struct Opt { function main (line 43) | fn main() { function run (line 62) | fn run(opt: Opt) -> Result<()> { function run_with_engine (line 77) | fn run_with_engine(engine: E, addr: SocketAddr) -> Result<... function current_engine (line 82) | fn current_engine() -> Result> { FILE: courses/rust/projects/project-3/src/client.rs type KvsClient (line 9) | pub struct KvsClient { method connect (line 16) | pub fn connect(addr: A) -> Result { method get (line 26) | pub fn get(&mut self, key: String) -> Result> { method set (line 37) | pub fn set(&mut self, key: String, value: String) -> Result<()> { method remove (line 48) | pub fn remove(&mut self, key: String) -> Result<()> { FILE: courses/rust/projects/project-3/src/common.rs type Request (line 4) | pub enum Request { type GetResponse (line 11) | pub enum GetResponse { type SetResponse (line 17) | pub enum SetResponse { type RemoveResponse (line 23) | pub enum RemoveResponse { FILE: courses/rust/projects/project-3/src/engines/kvs.rs constant COMPACTION_THRESHOLD (line 14) | const COMPACTION_THRESHOLD: u64 = 1024 * 1024; type KvStore (line 34) | pub struct KvStore { method open (line 56) | pub fn open(path: impl Into) -> Result { method compact (line 86) | pub fn compact(&mut self) -> Result<()> { method new_log_file (line 131) | fn new_log_file(&mut self, gen: u64) -> Result> { method set (line 144) | fn set(&mut self, key: String, value: String) -> Result<()> { method get (line 167) | fn get(&mut self, key: String) -> Result> { method remove (line 192) | fn remove(&mut self, key: String) -> Result<()> { function new_log_file (line 211) | fn new_log_file( function sorted_gen_list (line 229) | fn sorted_gen_list(path: &Path) -> Result> { function load (line 248) | fn load( function log_path (line 279) | fn log_path(dir: &Path, gen: u64) -> PathBuf { type Command (line 285) | enum Command { method set (line 291) | fn set(key: String, value: String) -> Command { method remove (line 295) | fn remove(key: String) -> Command { type CommandPos (line 301) | struct CommandPos { method from (line 308) | fn from((gen, range): (u64, Range)) -> Self { type BufReaderWithPos (line 317) | struct BufReaderWithPos { function new (line 323) | fn new(mut inner: R) -> Result { method read (line 333) | fn read(&mut self, buf: &mut [u8]) -> io::Result { method seek (line 341) | fn seek(&mut self, pos: SeekFrom) -> io::Result { type BufWriterWithPos (line 347) | struct BufWriterWithPos { function new (line 353) | fn new(mut inner: W) -> Result { method write (line 363) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 369) | fn flush(&mut self) -> io::Result<()> { method seek (line 375) | fn seek(&mut self, pos: SeekFrom) -> io::Result { FILE: courses/rust/projects/project-3/src/engines/mod.rs type KvsEngine (line 6) | pub trait KvsEngine { method set (line 10) | fn set(&mut self, key: String, value: String) -> Result<()>; method get (line 15) | fn get(&mut self, key: String) -> Result>; method remove (line 22) | fn remove(&mut self, key: String) -> Result<()>; FILE: courses/rust/projects/project-3/src/engines/sled.rs type SledKvsEngine (line 7) | pub struct SledKvsEngine(Db); method new (line 11) | pub fn new(db: Db) -> Self { method set (line 17) | fn set(&mut self, key: String, value: String) -> Result<()> { method get (line 24) | fn get(&mut self, key: String) -> Result> { method remove (line 33) | fn remove(&mut self, key: String) -> Result<()> { FILE: courses/rust/projects/project-3/src/error.rs type KvsError (line 7) | pub enum KvsError { method from (line 33) | fn from(err: io::Error) -> KvsError { method from (line 39) | fn from(err: serde_json::Error) -> KvsError { method from (line 45) | fn from(err: FromUtf8Error) -> KvsError { method from (line 51) | fn from(err: sled::Error) -> KvsError { type Result (line 57) | pub type Result = std::result::Result; FILE: courses/rust/projects/project-3/src/server.rs type KvsServer (line 9) | pub struct KvsServer { function new (line 15) | pub fn new(engine: E) -> Self { function run (line 20) | pub fn run(mut self, addr: A) -> Result<()> { function serve (line 35) | fn serve(&mut self, tcp: TcpStream) -> Result<()> { FILE: courses/rust/projects/project-3/tests/cli.rs function client_cli_no_args (line 12) | fn client_cli_no_args() { function client_cli_invalid_get (line 19) | fn client_cli_invalid_get() { function client_cli_invalid_set (line 51) | fn client_cli_invalid_set() { function client_cli_invalid_rm (line 90) | fn client_cli_invalid_rm() { function client_cli_invalid_subcommand (line 122) | fn client_cli_invalid_subcommand() { function client_cli_version (line 134) | fn client_cli_version() { function server_cli_version (line 145) | fn server_cli_version() { function cli_log_configuration (line 155) | fn cli_log_configuration() { function cli_wrong_engine (line 175) | fn cli_wrong_engine() { function cli_access_server (line 215) | fn cli_access_server(engine: &str, addr: &str) { function cli_access_server_kvs_engine (line 330) | fn cli_access_server_kvs_engine() { function cli_access_server_sled_engine (line 335) | fn cli_access_server_sled_engine() { FILE: courses/rust/projects/project-3/tests/kv_store.rs function get_stored_value (line 7) | fn get_stored_value() -> Result<()> { function overwrite_value (line 28) | fn overwrite_value() -> Result<()> { function get_non_existent_value (line 49) | fn get_non_existent_value() -> Result<()> { function remove_non_existent_key (line 65) | fn remove_non_existent_key() -> Result<()> { function remove_key (line 73) | fn remove_key() -> Result<()> { function compaction (line 85) | fn compaction() -> Result<()> { FILE: courses/rust/projects/project-4/src/bin/kvs-client.rs type Opt (line 14) | struct Opt { type Command (line 20) | enum Command { function main (line 64) | fn main() { function run (line 72) | fn run(opt: Opt) -> Result<()> { FILE: courses/rust/projects/project-4/src/bin/kvs-server.rs constant DEFAULT_LISTENING_ADDRESS (line 13) | const DEFAULT_LISTENING_ADDRESS: &str = "127.0.0.1:4000"; constant DEFAULT_ENGINE (line 14) | const DEFAULT_ENGINE: Engine = Engine::kvs; type Opt (line 18) | struct Opt { function main (line 45) | fn main() { function run (line 66) | fn run(opt: Opt) -> Result<()> { function run_with (line 87) | pub fn run_with(engine: E, pool: P, addr: S... function current_engine (line 92) | fn current_engine() -> Result> { FILE: courses/rust/projects/project-4/src/client.rs type KvsClient (line 9) | pub struct KvsClient { method connect (line 16) | pub fn connect(addr: A) -> Result { method get (line 26) | pub fn get(&mut self, key: String) -> Result> { method set (line 37) | pub fn set(&mut self, key: String, value: String) -> Result<()> { method remove (line 48) | pub fn remove(&mut self, key: String) -> Result<()> { FILE: courses/rust/projects/project-4/src/common.rs type Request (line 4) | pub enum Request { type GetResponse (line 11) | pub enum GetResponse { type SetResponse (line 17) | pub enum SetResponse { type RemoveResponse (line 23) | pub enum RemoveResponse { FILE: courses/rust/projects/project-4/src/engines/kvs.rs constant COMPACTION_THRESHOLD (line 19) | const COMPACTION_THRESHOLD: u64 = 1024 * 1024; type KvStore (line 40) | pub struct KvStore { method open (line 57) | pub fn open(path: impl Into) -> Result { method set (line 109) | fn set(&self, key: String, value: String) -> Result<()> { method get (line 116) | fn get(&self, key: String) -> Result> { method remove (line 135) | fn remove(&self, key: String) -> Result<()> { type KvStoreReader (line 146) | struct KvStoreReader { method close_stale_handles (line 160) | fn close_stale_handles(&self) { method read_and (line 172) | fn read_and(&self, cmd_pos: CommandPos, f: F) -> Result method read_command (line 192) | fn read_command(&self, cmd_pos: CommandPos) -> Result { method clone (line 200) | fn clone(&self) -> KvStoreReader { type KvStoreWriter (line 210) | struct KvStoreWriter { method set (line 222) | fn set(&mut self, key: String, value: String) -> Result<()> { method remove (line 241) | fn remove(&mut self, key: String) -> Result<()> { method compact (line 265) | fn compact(&mut self) -> Result<()> { function new_log_file (line 316) | fn new_log_file(path: &Path, gen: u64) -> Result> { function sorted_gen_list (line 329) | fn sorted_gen_list(path: &Path) -> Result> { function load (line 348) | fn load( function log_path (line 380) | fn log_path(dir: &Path, gen: u64) -> PathBuf { type Command (line 386) | enum Command { method set (line 392) | fn set(key: String, value: String) -> Command { method remove (line 396) | fn remove(key: String) -> Command { type CommandPos (line 403) | struct CommandPos { method from (line 410) | fn from((gen, range): (u64, Range)) -> Self { type BufReaderWithPos (line 419) | struct BufReaderWithPos { function new (line 425) | fn new(mut inner: R) -> Result { method read (line 435) | fn read(&mut self, buf: &mut [u8]) -> io::Result { method seek (line 443) | fn seek(&mut self, pos: SeekFrom) -> io::Result { type BufWriterWithPos (line 449) | struct BufWriterWithPos { function new (line 455) | fn new(mut inner: W) -> Result { method write (line 465) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 471) | fn flush(&mut self) -> io::Result<()> { method seek (line 477) | fn seek(&mut self, pos: SeekFrom) -> io::Result { FILE: courses/rust/projects/project-4/src/engines/mod.rs type KvsEngine (line 9) | pub trait KvsEngine: Clone + Send + 'static { method set (line 13) | fn set(&self, key: String, value: String) -> Result<()>; method get (line 18) | fn get(&self, key: String) -> Result>; method remove (line 25) | fn remove(&self, key: String) -> Result<()>; FILE: courses/rust/projects/project-4/src/engines/sled.rs type SledKvsEngine (line 7) | pub struct SledKvsEngine(Db); method new (line 11) | pub fn new(db: Db) -> Self { method set (line 17) | fn set(&self, key: String, value: String) -> Result<()> { method get (line 24) | fn get(&self, key: String) -> Result> { method remove (line 33) | fn remove(&self, key: String) -> Result<()> { FILE: courses/rust/projects/project-4/src/error.rs type KvsError (line 7) | pub enum KvsError { method from (line 33) | fn from(err: io::Error) -> KvsError { method from (line 39) | fn from(err: serde_json::Error) -> KvsError { method from (line 45) | fn from(err: FromUtf8Error) -> KvsError { method from (line 51) | fn from(err: sled::Error) -> KvsError { type Result (line 57) | pub type Result = std::result::Result; FILE: courses/rust/projects/project-4/src/server.rs type KvsServer (line 10) | pub struct KvsServer { function new (line 17) | pub fn new(engine: E, pool: P) -> Self { function run (line 22) | pub fn run(self, addr: A) -> Result<()> { function serve (line 39) | fn serve(engine: E, tcp: TcpStream) -> Result<()> { FILE: courses/rust/projects/project-4/src/thread_pool/mod.rs type ThreadPool (line 15) | pub trait ThreadPool { method new (line 21) | fn new(threads: u32) -> Result method spawn (line 30) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-4/src/thread_pool/naive.rs type NaiveThreadPool (line 8) | pub struct NaiveThreadPool; method new (line 11) | fn new(_threads: u32) -> Result { method spawn (line 15) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-4/src/thread_pool/rayon.rs type RayonThreadPool (line 5) | pub struct RayonThreadPool(rayon::ThreadPool); method new (line 8) | fn new(threads: u32) -> Result { method spawn (line 16) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-4/src/thread_pool/shared_queue.rs type SharedQueueThreadPool (line 19) | pub struct SharedQueueThreadPool { method new (line 24) | fn new(threads: u32) -> Result { method spawn (line 38) | fn spawn(&self, job: F) type TaskReceiver (line 49) | struct TaskReceiver(Receiver>); method drop (line 52) | fn drop(&mut self) { function run_tasks (line 62) | fn run_tasks(rx: TaskReceiver) { FILE: courses/rust/projects/project-4/tests/cli.rs function client_cli_no_args (line 12) | fn client_cli_no_args() { function client_cli_invalid_get (line 19) | fn client_cli_invalid_get() { function client_cli_invalid_set (line 51) | fn client_cli_invalid_set() { function client_cli_invalid_rm (line 90) | fn client_cli_invalid_rm() { function client_cli_invalid_subcommand (line 122) | fn client_cli_invalid_subcommand() { function client_cli_version (line 134) | fn client_cli_version() { function server_cli_version (line 145) | fn server_cli_version() { function cli_log_configuration (line 155) | fn cli_log_configuration() { function cli_wrong_engine (line 175) | fn cli_wrong_engine() { function cli_access_server (line 215) | fn cli_access_server(engine: &str, addr: &str) { function cli_access_server_kvs_engine (line 330) | fn cli_access_server_kvs_engine() { function cli_access_server_sled_engine (line 335) | fn cli_access_server_sled_engine() { FILE: courses/rust/projects/project-4/tests/kv_store.rs function get_stored_value (line 9) | fn get_stored_value() -> Result<()> { function overwrite_value (line 30) | fn overwrite_value() -> Result<()> { function get_non_existent_value (line 51) | fn get_non_existent_value() -> Result<()> { function remove_non_existent_key (line 67) | fn remove_non_existent_key() -> Result<()> { function remove_key (line 75) | fn remove_key() -> Result<()> { function compaction (line 87) | fn compaction() -> Result<()> { function concurrent_set (line 131) | fn concurrent_set() -> Result<()> { function concurrent_get (line 162) | fn concurrent_get() -> Result<()> { FILE: courses/rust/projects/project-4/tests/thread_pool.rs function spawn_counter (line 9) | fn spawn_counter(pool: P) -> Result<()> { function spawn_panic_task (line 32) | fn spawn_panic_task() -> Result<()> { function naive_thread_pool_spawn_counter (line 50) | fn naive_thread_pool_spawn_counter() -> Result<()> { function shared_queue_thread_pool_spawn_counter (line 56) | fn shared_queue_thread_pool_spawn_counter() -> Result<()> { function rayon_thread_pool_spawn_counter (line 62) | fn rayon_thread_pool_spawn_counter() -> Result<()> { function shared_queue_thread_pool_panic_task (line 68) | fn shared_queue_thread_pool_panic_task() -> Result<()> { FILE: courses/rust/projects/project-5/src/bin/kvs-client.rs type Opt (line 15) | struct Opt { type Command (line 21) | enum Command { function main (line 65) | fn main() { function run (line 73) | fn run(opt: Opt) -> Result<()> { FILE: courses/rust/projects/project-5/src/bin/kvs-server.rs constant DEFAULT_LISTENING_ADDRESS (line 16) | const DEFAULT_LISTENING_ADDRESS: &str = "127.0.0.1:4000"; constant DEFAULT_ENGINE (line 17) | const DEFAULT_ENGINE: Engine = Engine::kvs; type Opt (line 21) | struct Opt { function main (line 48) | fn main() { function run (line 67) | fn run(opt: Opt) -> Result<()> { function run_with (line 92) | pub fn run_with(engine: E, addr: SocketAddr) -> Result<()> { function current_engine (line 97) | fn current_engine() -> Result> { FILE: courses/rust/projects/project-5/src/client.rs type KvsClient (line 11) | pub struct KvsClient { method connect (line 18) | pub fn connect(addr: SocketAddr) -> impl Future impl Future, S... method set (line 46) | pub fn set(self, key: String, value: String) -> impl Future impl Future { function open (line 65) | pub fn open(path: impl Into, concurrency: u32) -> Result { method set (line 125) | fn set(&self, key: String, value: String) -> Box Box, Erro... method remove (line 181) | fn remove(&self, key: String) -> Box(&self, cmd_pos: CommandPos, f: F) -> Result method read_command (line 249) | fn read_command(&self, cmd_pos: CommandPos) -> Result { method clone (line 257) | fn clone(&self) -> KvStoreReader { type KvStoreWriter (line 267) | struct KvStoreWriter { method set (line 279) | fn set(&mut self, key: String, value: String) -> Result<()> { method remove (line 298) | fn remove(&mut self, key: String) -> Result<()> { method compact (line 322) | fn compact(&mut self) -> Result<()> { function new_log_file (line 373) | fn new_log_file(path: &Path, gen: u64) -> Result> { function sorted_gen_list (line 386) | fn sorted_gen_list(path: &Path) -> Result> { function load (line 405) | fn load( function log_path (line 437) | fn log_path(dir: &Path, gen: u64) -> PathBuf { type Command (line 443) | enum Command { method set (line 449) | fn set(key: String, value: String) -> Command { method remove (line 453) | fn remove(key: String) -> Command { type CommandPos (line 460) | struct CommandPos { method from (line 467) | fn from((gen, range): (u64, Range)) -> Self { type BufReaderWithPos (line 476) | struct BufReaderWithPos { function new (line 482) | fn new(mut inner: R) -> Result { method read (line 492) | fn read(&mut self, buf: &mut [u8]) -> io::Result { method seek (line 500) | fn seek(&mut self, pos: SeekFrom) -> io::Result { type BufWriterWithPos (line 506) | struct BufWriterWithPos { function new (line 512) | fn new(mut inner: W) -> Result { method write (line 522) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 528) | fn flush(&mut self) -> io::Result<()> { method seek (line 534) | fn seek(&mut self, pos: SeekFrom) -> io::Result { FILE: courses/rust/projects/project-5/src/engines/mod.rs type KvsEngine (line 11) | pub trait KvsEngine: Clone + Send + 'static { method set (line 15) | fn set(&self, key: String, value: String) -> Box Box, Er... method remove (line 27) | fn remove(&self, key: String) -> Box { function new (line 19) | pub fn new(db: Db, concurrency: u32) -> Result { method set (line 26) | fn set(&self, key: String, value: String) -> Box Box, Erro... method remove (line 66) | fn remove(&self, key: String) -> Box KvsError { method from (line 39) | fn from(err: serde_json::Error) -> KvsError { method from (line 45) | fn from(err: FromUtf8Error) -> KvsError { method from (line 51) | fn from(err: sled::Error) -> KvsError { type Result (line 57) | pub type Result = std::result::Result; FILE: courses/rust/projects/project-5/src/server.rs type KvsServer (line 10) | pub struct KvsServer { function new (line 16) | pub fn new(engine: E) -> Self { function run (line 21) | pub fn run(self, addr: SocketAddr) -> Result<()> { function serve (line 35) | fn serve(engine: E, tcp: TcpStream) -> impl Future Result method spawn (line 30) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-5/src/thread_pool/naive.rs type NaiveThreadPool (line 9) | pub struct NaiveThreadPool; method new (line 12) | fn new(_threads: u32) -> Result { method spawn (line 16) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-5/src/thread_pool/rayon.rs type RayonThreadPool (line 7) | pub struct RayonThreadPool(Arc); method new (line 10) | fn new(threads: u32) -> Result { method spawn (line 18) | fn spawn(&self, job: F) FILE: courses/rust/projects/project-5/src/thread_pool/shared_queue.rs type SharedQueueThreadPool (line 18) | pub struct SharedQueueThreadPool { method new (line 23) | fn new(threads: u32) -> Result { method spawn (line 37) | fn spawn(&self, job: F) type TaskReceiver (line 48) | struct TaskReceiver(Receiver>); method drop (line 51) | fn drop(&mut self) { function run_tasks (line 61) | fn run_tasks(rx: TaskReceiver) { FILE: courses/rust/projects/project-5/tests/cli.rs function client_cli_no_args (line 12) | fn client_cli_no_args() { function client_cli_invalid_get (line 19) | fn client_cli_invalid_get() { function client_cli_invalid_set (line 51) | fn client_cli_invalid_set() { function client_cli_invalid_rm (line 90) | fn client_cli_invalid_rm() { function client_cli_invalid_subcommand (line 122) | fn client_cli_invalid_subcommand() { function client_cli_version (line 134) | fn client_cli_version() { function server_cli_version (line 145) | fn server_cli_version() { function cli_log_configuration (line 155) | fn cli_log_configuration() { function cli_wrong_engine (line 175) | fn cli_wrong_engine() { function cli_access_server (line 215) | fn cli_access_server(engine: &str, addr: &str) { function cli_access_server_kvs_engine (line 330) | fn cli_access_server_kvs_engine() { function cli_access_server_sled_engine (line 335) | fn cli_access_server_sled_engine() { FILE: courses/rust/projects/project-5/tests/kv_store.rs function get_stored_value (line 10) | fn get_stored_value() -> Result<()> { function overwrite_value (line 43) | fn overwrite_value() -> Result<()> { function get_non_existent_value (line 76) | fn get_non_existent_value() -> Result<()> { function remove_non_existent_key (line 92) | fn remove_non_existent_key() -> Result<()> { function remove_key (line 100) | fn remove_key() -> Result<()> { function compaction (line 112) | fn compaction() -> Result<()> { function concurrent_set (line 156) | fn concurrent_set() -> Result<()> { function concurrent_get (line 187) | fn concurrent_get() -> Result<()> { FILE: courses/rust/projects/project-5/tests/thread_pool.rs function spawn_counter (line 9) | fn spawn_counter(pool: P) -> Result<()> { function spawn_panic_task (line 32) | fn spawn_panic_task() -> Result<()> { function naive_thread_pool_spawn_counter (line 50) | fn naive_thread_pool_spawn_counter() -> Result<()> { function shared_queue_thread_pool_spawn_counter (line 56) | fn shared_queue_thread_pool_spawn_counter() -> Result<()> { function rayon_thread_pool_spawn_counter (line 62) | fn rayon_thread_pool_spawn_counter() -> Result<()> { function shared_queue_thread_pool_panic_task (line 68) | fn shared_queue_thread_pool_panic_task() -> Result<()> { FILE: tidb/join/benchmark_test.go function BenchmarkJoin (line 5) | func BenchmarkJoin(b *testing.B) { function BenchmarkJoinExample (line 11) | func BenchmarkJoinExample(b *testing.B) { FILE: tidb/join/join.go function Join (line 12) | func Join(f0, f1 string, offset0, offset1 []int) (sum uint64) { FILE: tidb/join/join_example.go function JoinExample (line 14) | func JoinExample(f0, f1 string, offset0, offset1 []int) (sum uint64) { function readCSVFileIntoTbl (line 30) | func readCSVFileIntoTbl(f string) (tbl [][]string) { function buildHashTable (line 50) | func buildHashTable(data [][]string, offset []int) (hashtable *mvmap.MVM... function probe (line 68) | func probe(hashtable *mvmap.MVMap, row []string, offset []int) (rowIDs [... FILE: tidb/join/join_test.go type joinTestSuite (line 9) | type joinTestSuite struct method TestJoin (line 17) | func (s *joinTestSuite) TestJoin(c *check.C) { function TestT (line 11) | func TestT(t *testing.T) { FILE: tidb/mapreduce/casegen.go type DataSize (line 10) | type DataSize method String (line 18) | func (d DataSize) String() string { constant KB (line 13) | KB = 1 << 10 constant MB (line 14) | MB = 1 << 20 constant GB (line 15) | GB = 1 << 30 type Case (line 30) | type Case struct type CaseGenF (line 36) | type CaseGenF function AllCaseGenFs (line 39) | func AllCaseGenFs() []CaseGenF { function genUniformCases (line 47) | func genUniformCases() []CaseGenF { function genPercentCases (line 92) | func genPercentCases() []CaseGenF { function CaseSingleURLPerFile (line 176) | func CaseSingleURLPerFile(dataFileDir string, totalDataSize, nMapFiles i... function genResult (line 213) | func genResult(rpath string, urlCount map[string]int) { function randomNURL (line 222) | func randomNURL(n int) ([]string, int) { function wrapLikeURL (line 239) | func wrapLikeURL(suffix string) string { FILE: tidb/mapreduce/mapreduce.go type KeyValue (line 17) | type KeyValue struct type ReduceF (line 23) | type ReduceF type MapF (line 26) | type MapF type jobPhase (line 29) | type jobPhase constant mapPhase (line 32) | mapPhase jobPhase = "mapPhase" constant reducePhase (line 33) | reducePhase = "reducePhase" type task (line 36) | type task struct type MRCluster (line 50) | type MRCluster struct method NWorkers (line 73) | func (c *MRCluster) NWorkers() int { return c.nWorkers } method Start (line 76) | func (c *MRCluster) Start() { method worker (line 83) | func (c *MRCluster) worker() { method Shutdown (line 125) | func (c *MRCluster) Shutdown() { method Submit (line 131) | func (c *MRCluster) Submit(jobName, dataDir string, mapF MapF, reduceF... method run (line 137) | func (c *MRCluster) run(jobName, dataDir string, mapF MapF, reduceF Re... function init (line 63) | func init() { function GetMRCluster (line 68) | func GetMRCluster() *MRCluster { function ihash (line 165) | func ihash(s string) int { function reduceName (line 171) | func reduceName(dataDir, jobName string, mapTask int, reduceTask int) st... function mergeName (line 175) | func mergeName(dataDir, jobName string, reduceTask int) string { FILE: tidb/mapreduce/urltop10.go function URLTop10 (line 4) | func URLTop10(nWorkers int) RoundsArgs { FILE: tidb/mapreduce/urltop10_example.go function ExampleURLTop10 (line 15) | func ExampleURLTop10(nWorkers int) RoundsArgs { function ExampleURLCountMap (line 33) | func ExampleURLCountMap(filename string, contents string) []KeyValue { function ExampleURLCountReduce (line 47) | func ExampleURLCountReduce(key string, values []string) string { function ExampleURLTop10Map (line 52) | func ExampleURLTop10Map(filename string, contents string) []KeyValue { function ExampleURLTop10Reduce (line 62) | func ExampleURLTop10Reduce(key string, values []string) string { FILE: tidb/mapreduce/urltop10_test.go function testDataScale (line 13) | func testDataScale() ([]DataSize, []int) { constant dataDir (line 20) | dataDir = "/tmp/mr_homework" function dataPrefix (line 23) | func dataPrefix(i int, ds DataSize, nMap int) string { function TestGenData (line 27) | func TestGenData(t *testing.T) { function TestCleanData (line 39) | func TestCleanData(t *testing.T) { function TestExampleURLTop (line 45) | func TestExampleURLTop(t *testing.T) { function TestURLTop (line 50) | func TestURLTop(t *testing.T) { function testURLTop (line 55) | func testURLTop(t *testing.T, rounds RoundsArgs) { FILE: tidb/mapreduce/utils.go type RoundArgs (line 14) | type RoundArgs struct type RoundsArgs (line 21) | type RoundsArgs type urlCount (line 23) | type urlCount struct function TopN (line 29) | func TopN(urlCntMap map[string]int, n int) ([]string, []int) { function CheckFile (line 53) | func CheckFile(expected, got string) (string, bool) { function CreateFileAndBuf (line 73) | func CreateFileAndBuf(fpath string) (*os.File, *bufio.Writer) { function OpenFileAndBuf (line 84) | func OpenFileAndBuf(fpath string) (*os.File, *bufio.Reader) { function WriteToBuf (line 93) | func WriteToBuf(buf *bufio.Writer, strs ...string) { function SafeClose (line 102) | func SafeClose(f *os.File, buf *bufio.Writer) { function FileOrDirExist (line 114) | func FileOrDirExist(p string) bool { FILE: tidb/mergesort/bench_test.go function BenchmarkMergeSort (line 8) | func BenchmarkMergeSort(b *testing.B) { function BenchmarkNormalSort (line 23) | func BenchmarkNormalSort(b *testing.B) { FILE: tidb/mergesort/mergesort.go function MergeSort (line 5) | func MergeSort(src []int64) { FILE: tidb/mergesort/mergesort_test.go function TestT (line 14) | func TestT(t *testing.T) { function prepare (line 18) | func prepare(src []int64) { type sortTestSuite (line 25) | type sortTestSuite struct method TestMergeSort (line 27) | func (s *sortTestSuite) TestMergeSort(c *check.C) {