diff --git a/benches/suites/raft.rs b/benches/suites/raft.rs index 8e36d23c6..7380c231b 100644 --- a/benches/suites/raft.rs +++ b/benches/suites/raft.rs @@ -29,7 +29,7 @@ fn quick_raft(storage: MemStorage, logger: &slog::Logger) -> Raft { pub fn bench_raft_new(c: &mut Criterion) { DEFAULT_RAFT_SETS.iter().for_each(|(voters, learners)| { - c.bench_function(&format!("Raft::new ({}, {})", voters, learners), move |b| { + c.bench_function(&format!("Raft::new ({voters}, {learners})"), move |b| { let logger = raft::default_logger(); let storage = new_storage(*voters, *learners); b.iter(|| quick_raft(storage.clone(), &logger)) @@ -51,7 +51,7 @@ pub fn bench_raft_campaign(c: &mut Criterion) { // Skip the first since it's 0,0 for msg in msgs { c.bench_function( - &format!("Raft::campaign ({}, {}, {})", voters, learners, msg), + &format!("Raft::campaign ({voters}, {learners}, {msg})"), move |b| { let logger = raft::default_logger(); let storage = new_storage(*voters, *learners); diff --git a/datadriven/src/line_sparser.rs b/datadriven/src/line_sparser.rs index 4dde527d3..ab2747c8c 100644 --- a/datadriven/src/line_sparser.rs +++ b/datadriven/src/line_sparser.rs @@ -61,7 +61,7 @@ pub fn parse_line(line: &str, logger: &slog::Logger) -> Result<(String, Vec bail!("unknown argument format: {}", arg), + _ => bail!("unknown argument format: {arg}"), } } @@ -108,7 +108,7 @@ mod tests { let line = "cmd a=1 b=(2,3) c= d"; let (cmd, cmd_args) = parse_line(line, &logger)?; assert_eq!(cmd, "cmd"); - assert_eq!(format!("{:?}", cmd_args), "[a=1, b=(2,3), c=, d]"); + assert_eq!(format!("{cmd_args:?}"), "[a=1, b=(2,3), c=, d]"); Ok(()) } diff --git a/examples/five_mem_node/main.rs b/examples/five_mem_node/main.rs index eaf72020b..d2326aa98 100644 --- a/examples/five_mem_node/main.rs +++ b/examples/five_mem_node/main.rs @@ -399,7 +399,7 @@ impl Proposal { fn propose(raft_group: &mut RawNode, proposal: &mut Proposal) { let last_index1 = raft_group.raft.raft_log.last_index() + 1; if let Some((ref key, ref value)) = proposal.normal { - let data = format!("put {} {}", key, value).into_bytes(); + let data = format!("put {key} {value}").into_bytes(); let _ = raft_group.propose(vec![], data); } else if let Some(ref cc) = proposal.conf_change { let _ = raft_group.propose_conf_change(vec![], cc.clone()); diff --git a/harness/tests/integration_cases/test_raft.rs b/harness/tests/integration_cases/test_raft.rs index 9f73bb102..727fa9624 100644 --- a/harness/tests/integration_cases/test_raft.rs +++ b/harness/tests/integration_cases/test_raft.rs @@ -449,7 +449,7 @@ fn test_leader_election_pre_vote() { fn test_leader_election_with_config(pre_vote: bool, l: &Logger) { let mut config = Network::default_config(); config.pre_vote = pre_vote; - let mut tests = vec![ + let mut tests = [ ( Network::new_with_config(vec![None, None, None], &config, l), StateRole::Leader, @@ -763,7 +763,7 @@ fn test_vote_from_any_state_for_type(vt: MessageType, l: &Logger) { #[test] fn test_log_replication() { let l = default_logger(); - let mut tests = vec![ + let mut tests = [ ( Network::new(vec![None, None, None], &l), vec![new_message(1, 1, MessageType::MsgPropose, 1)], @@ -936,7 +936,7 @@ fn test_dueling_candidates() { panic!("#{}: term = {}, want {}", i, nt.peers[&id].term, term); } - let prefix = format!("#{}: ", i); + let prefix = format!("#{i}: "); assert_raft_log(&prefix, &nt.peers[&id].raft_log, raft_log); } } @@ -984,7 +984,7 @@ fn test_dueling_pre_candidates() { if nt.peers[&id].term != term { panic!("#{}: term = {}, want {}", i, nt.peers[&id].term, term); } - let prefix = format!("#{}: ", i); + let prefix = format!("#{i}: "); assert_raft_log(&prefix, &nt.peers[&id].raft_log, raft_log); } } @@ -1102,7 +1102,7 @@ fn test_proposal() { for p in nw.peers.values() { if let Some(ref raft) = p.raft { - let prefix = format!("#{}: ", j); + let prefix = format!("#{j}: "); assert_raft_log(&prefix, &raft.raft_log, want_log); } } @@ -1115,7 +1115,7 @@ fn test_proposal() { #[test] fn test_proposal_by_proxy() { let l = default_logger(); - let mut tests = vec![ + let mut tests = [ Network::new(vec![None, None, None], &l), Network::new(vec![None, None, NOP_STEPPER], &l), ]; @@ -1131,7 +1131,7 @@ fn test_proposal_by_proxy() { continue; } if let Some(ref raft) = p.raft { - let prefix = format!("#{}: ", j); + let prefix = format!("#{j}: "); assert_raft_log(&prefix, &raft.raft_log, (2, 0, 2)); } } @@ -3157,7 +3157,7 @@ fn test_new_leader_pending_config() { i, r.pending_conf_index, wpending_index ); } - assert_eq!(r.has_pending_conf(), add_entry, "#{}: ", i); + assert_eq!(r.has_pending_conf(), add_entry, "#{i}: "); } } @@ -5372,7 +5372,7 @@ fn test_election_after_change_priority() { network.send(vec![new_message(id, id, MessageType::MsgHup, 0)]); // check state - assert_eq!(network.peers[&id].state, state, "peer {} state", id); + assert_eq!(network.peers[&id].state, state, "peer {id} state"); } } @@ -5799,38 +5799,36 @@ fn test_fast_log_rejection() { .unwrap(); let mut msgs = n2.read_messages(); - assert_eq!(msgs.len(), 1, "#{}", i); + assert_eq!(msgs.len(), 1, "#{i}"); assert_eq!( msgs[0].get_msg_type(), MessageType::MsgHeartbeatResponse, - "#{}", - i + "#{i}" ); // move Vec item by pop n1.step(msgs.pop().unwrap()).unwrap(); let mut msgs = n1.read_messages(); - assert_eq!(msgs.len(), 1, "#{}", i); - assert_eq!(msgs[0].get_msg_type(), MessageType::MsgAppend, "#{}", i); + assert_eq!(msgs.len(), 1, "#{i}"); + assert_eq!(msgs[0].get_msg_type(), MessageType::MsgAppend, "#{i}"); n2.step(msgs.pop().unwrap()).unwrap(); let mut msgs = n2.read_messages(); - assert_eq!(msgs.len(), 1, "#{}", i); + assert_eq!(msgs.len(), 1, "#{i}"); assert_eq!( msgs[0].get_msg_type(), MessageType::MsgAppendResponse, - "#{}", - i + "#{i}" ); assert!(msgs[0].reject, "#{}", i); - assert_eq!(msgs[0].reject_hint, reject_hint_index, "#{}", i); - assert_eq!(msgs[0].log_term, reject_hint_term, "#{}", i); + assert_eq!(msgs[0].reject_hint, reject_hint_index, "#{i}"); + assert_eq!(msgs[0].log_term, reject_hint_term, "#{i}"); n1.step(msgs.pop().unwrap()).unwrap(); let msgs = n1.read_messages(); - assert_eq!(msgs.len(), 1, "#{}", i); - assert_eq!(msgs[0].log_term, next_append_term, "#{}", i); - assert_eq!(msgs[0].index, next_append_index, "#{}", i); + assert_eq!(msgs.len(), 1, "#{i}"); + assert_eq!(msgs[0].log_term, next_append_term, "#{i}"); + assert_eq!(msgs[0].index, next_append_index, "#{i}"); } } diff --git a/harness/tests/integration_cases/test_raft_paper.rs b/harness/tests/integration_cases/test_raft_paper.rs index 22a29b34a..0b81e70dd 100644 --- a/harness/tests/integration_cases/test_raft_paper.rs +++ b/harness/tests/integration_cases/test_raft_paper.rs @@ -126,7 +126,7 @@ fn test_leader_bcast_beat() { } let mut msgs = r.read_messages(); - msgs.sort_by_key(|m| format!("{:?}", m)); + msgs.sort_by_key(|m| format!("{m:?}")); let new_message_ext = |f, to| { let mut m = new_message(f, to, MessageType::MsgHeartbeat, 0); @@ -179,7 +179,7 @@ fn test_nonleader_start_election(state: StateRole, l: &Logger) { assert_eq!(r.state, StateRole::Candidate); assert!(r.prs().votes()[&r.id]); let mut msgs = r.read_messages(); - msgs.sort_by_key(|m| format!("{:?}", m)); + msgs.sort_by_key(|m| format!("{m:?}")); let new_message_ext = |f, to| { let mut m = new_message(f, to, MessageType::MsgRequestVote, 0); m.term = 2; @@ -437,7 +437,7 @@ fn test_leader_start_replication() { assert_eq!(r.raft_log.last_index(), li + 1); assert_eq!(r.raft_log.committed, li); let mut msgs = r.read_messages(); - msgs.sort_by_key(|m| format!("{:?}", m)); + msgs.sort_by_key(|m| format!("{m:?}")); let wents = vec![new_entry(1, li + 1, SOME_DATA)]; let new_message_ext = |f, to, ents| { let mut m = new_message(f, to, MessageType::MsgAppend, 0); @@ -484,7 +484,7 @@ fn test_leader_commit_entry() { let wents = vec![new_entry(1, li + 1, SOME_DATA)]; assert_eq!(r.raft_log.next_entries(None), Some(wents)); let mut msgs = r.read_messages(); - msgs.sort_by_key(|m| format!("{:?}", m)); + msgs.sort_by_key(|m| format!("{m:?}")); for (i, m) in msgs.drain(..).enumerate() { assert_eq!(i as u64 + 2, m.to); assert_eq!(m.get_msg_type(), MessageType::MsgAppend); @@ -923,7 +923,7 @@ fn test_vote_request() { } let mut msgs = r.read_messages(); - msgs.sort_by_key(|m| format!("{:?}", m)); + msgs.sort_by_key(|m| format!("{m:?}")); if msgs.len() != 2 { panic!("#{}: msg count = {}, want 2", j, msgs.len()); } diff --git a/harness/tests/integration_cases/test_raw_node.rs b/harness/tests/integration_cases/test_raw_node.rs index 058321b6b..c7e62a6be 100644 --- a/harness/tests/integration_cases/test_raw_node.rs +++ b/harness/tests/integration_cases/test_raw_node.rs @@ -103,7 +103,7 @@ fn test_raw_node_step() { let res = raw_node.step(new_message(0, 0, *msg_t, 0)); // LocalMsg should be ignored. if raw_node::is_local_msg(*msg_t) { - assert_eq!(res, Err(Error::StepLocalMsg), "{:?}", msg_t); + assert_eq!(res, Err(Error::StepLocalMsg), "{msg_t:?}"); } } } diff --git a/harness/tests/test_util/mod.rs b/harness/tests/test_util/mod.rs index b55412fee..076f7c5bf 100644 --- a/harness/tests/test_util/mod.rs +++ b/harness/tests/test_util/mod.rs @@ -28,7 +28,7 @@ pub fn ltoa(raft_log: &RaftLog) -> String { let mut s = format!("committed: {}\n", raft_log.committed); s = s + &format!("applied: {}\n", raft_log.applied); for (i, e) in raft_log.all_entries().iter().enumerate() { - s = s + &format!("#{}: {:?}\n", i, e); + s = s + &format!("#{i}: {e:?}\n"); } s } diff --git a/proto/build.rs b/proto/build.rs index 957137afc..bd173334a 100644 --- a/proto/build.rs +++ b/proto/build.rs @@ -5,8 +5,8 @@ use protobuf_build::Builder; fn main() { let base = std::env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| ".".to_string()); Builder::new() - .search_dir_for_protos(&format!("{}/proto", base)) - .includes(&[format!("{}/include", base), format!("{}/proto", base)]) + .search_dir_for_protos(&format!("{base}/proto")) + .includes(&[format!("{base}/include"), format!("{base}/proto")]) .include_google_protos() .generate() } diff --git a/proto/src/confchange.rs b/proto/src/confchange.rs index f5dc4fd72..569027079 100644 --- a/proto/src/confchange.rs +++ b/proto/src/confchange.rs @@ -28,7 +28,7 @@ pub fn parse_conf_change(s: &str) -> Result, String> { let splits = s.split_ascii_whitespace(); for tok in splits { if tok.len() < 2 { - return Err(format!("unknown token {}", tok)); + return Err(format!("unknown token {tok}")); } let mut cc = ConfChangeSingle::default(); let mut chars = tok.chars(); @@ -36,11 +36,11 @@ pub fn parse_conf_change(s: &str) -> Result, String> { 'v' => ConfChangeType::AddNode, 'l' => ConfChangeType::AddLearnerNode, 'r' => ConfChangeType::RemoveNode, - _ => return Err(format!("unknown token {}", tok)), + _ => return Err(format!("unknown token {tok}")), }); cc.node_id = match chars.as_str().parse() { Ok(id) => id, - Err(e) => return Err(format!("parse token {} fail: {}", tok, e)), + Err(e) => return Err(format!("parse token {tok} fail: {e}")), }; ccs.push(cc); } diff --git a/src/confchange/changer.rs b/src/confchange/changer.rs index 103c5e748..938af7c21 100644 --- a/src/confchange/changer.rs +++ b/src/confchange/changer.rs @@ -112,8 +112,7 @@ impl Changer<'_> { let (mut cfg, mut prs) = self.check_and_copy()?; if cfg.voters().outgoing.is_empty() { return Err(Error::ConfChangeError(format!( - "configuration is not joint: {:?}", - cfg + "configuration is not joint: {cfg:?}" ))); } cfg.learners.extend(cfg.learners_next.drain()); @@ -294,37 +293,32 @@ fn check_invariants(cfg: &Configuration, prs: &IncrChangeMap) -> Result<()> { for id in cfg.voters().ids().iter() { if !prs.contains(id) { return Err(Error::ConfChangeError(format!( - "no progress for voter {}", - id + "no progress for voter {id}" ))); } } for id in &cfg.learners { if !prs.contains(*id) { return Err(Error::ConfChangeError(format!( - "no progress for learner {}", - id + "no progress for learner {id}" ))); } // Conversely Learners and Voters doesn't intersect at all. if cfg.voters().outgoing.contains(id) { return Err(Error::ConfChangeError(format!( - "{} is in learners and outgoing voters", - id + "{id} is in learners and outgoing voters" ))); } if cfg.voters().incoming.contains(id) { return Err(Error::ConfChangeError(format!( - "{} is in learners and incoming voters", - id + "{id} is in learners and incoming voters" ))); } } for id in &cfg.learners_next { if !prs.contains(*id) { return Err(Error::ConfChangeError(format!( - "no progress for learner(next) {}", - id + "no progress for learner(next) {id}" ))); } @@ -332,8 +326,7 @@ fn check_invariants(cfg: &Configuration, prs: &IncrChangeMap) -> Result<()> { // to a conflicting voter in the outgoing config. if !cfg.voters().outgoing.contains(id) { return Err(Error::ConfChangeError(format!( - "{} is in learners_next and outgoing voters", - id + "{id} is in learners_next and outgoing voters" ))); } } diff --git a/src/confchange/datadriven_test.rs b/src/confchange/datadriven_test.rs index 96b9dcc70..8261d5703 100644 --- a/src/confchange/datadriven_test.rs +++ b/src/confchange/datadriven_test.rs @@ -60,7 +60,7 @@ fn test_conf_change_data_driven() -> anyhow::Result<()> { let mut buffer = String::new(); let conf = tr.conf(); - writeln!(buffer, "{}", conf).unwrap(); + writeln!(buffer, "{conf}").unwrap(); let prs = tr.progress(); diff --git a/src/config.rs b/src/config.rs index 3668db883..6d08ad0e0 100644 --- a/src/config.rs +++ b/src/config.rs @@ -191,8 +191,7 @@ impl Config { if min_timeout >= max_timeout { return Err(Error::ConfigInvalid(format!( - "min election tick {} should be less than max election tick {}", - min_timeout, max_timeout + "min election tick {min_timeout} should be less than max election tick {max_timeout}" ))); } diff --git a/src/quorum.rs b/src/quorum.rs index 24c6d6a82..ccf9197a9 100644 --- a/src/quorum.rs +++ b/src/quorum.rs @@ -43,11 +43,11 @@ impl Display for Index { match self.group_id { 0 => match self.index { u64::MAX => write!(f, "∞"), - index => write!(f, "{}", index), + index => write!(f, "{index}"), }, group_id => match self.index { - u64::MAX => write!(f, "[{}]∞", group_id), - index => write!(f, "[{}]{}", group_id, index), + u64::MAX => write!(f, "[{group_id}]∞"), + index => write!(f, "[{group_id}]{index}"), }, } } diff --git a/src/quorum/datadriven_test.rs b/src/quorum/datadriven_test.rs index df18452f4..0f52b3938 100644 --- a/src/quorum/datadriven_test.rs +++ b/src/quorum/datadriven_test.rs @@ -86,7 +86,7 @@ fn test_quorum(data: &TestData) -> String { group_id: 0, }), _ => { - panic!("unknown arg: {}", val); + panic!("unknown arg: {val}"); } }, _ => { @@ -135,10 +135,7 @@ fn test_quorum(data: &TestData) -> String { .len(); if voters != input { - return format!( - "error: mismatched input (explicit or _) for voters {:?}: {:?}", - voters, input - ); + return format!("error: mismatched input (explicit or _) for voters {voters:?}: {input:?}"); } // verify length of group ids @@ -301,12 +298,12 @@ fn test_quorum(data: &TestData) -> String { let ar = JointConfig::new_joint_from_majorities(cj, c) .vote_result(|id| l.get(&id).cloned()); if ar != r { - writeln!(buf, "{} <-- via symmetry", ar).unwrap(); + writeln!(buf, "{ar} <-- via symmetry").unwrap(); } } else { r = c.vote_result(|id| l.get(&id).cloned()); } - writeln!(buf, "{}", r).unwrap(); + writeln!(buf, "{r}").unwrap(); } _ => { panic!("unknown command: {}", data.cmd); diff --git a/src/raft.rs b/src/raft.rs index eb9a80be3..466c7a8d3 100644 --- a/src/raft.rs +++ b/src/raft.rs @@ -312,7 +312,7 @@ pub fn vote_resp_msg_type(t: MessageType) -> MessageType { match t { MessageType::MsgRequestVote => MessageType::MsgRequestVoteResponse, MessageType::MsgRequestPreVote => MessageType::MsgRequestPreVoteResponse, - _ => panic!("Not a vote message: {:?}", t), + _ => panic!("Not a vote message: {t:?}"), } } diff --git a/src/raft_log.rs b/src/raft_log.rs index b54e3dda1..8b25b56ce 100644 --- a/src/raft_log.rs +++ b/src/raft_log.rs @@ -622,7 +622,7 @@ impl RaftLog { let ents = self.slice(lo, hi, page_size, context)?; if ents.is_empty() { return Err(Error::Store(StorageError::Other( - format!("got 0 entries in [{}, {})", lo, hi).into(), + format!("got 0 entries in [{lo}, {hi})").into(), ))); } lo += ents.len() as u64; @@ -808,7 +808,7 @@ mod test { raft_log.append(&previous_ents); let gconflict = raft_log.find_conflict(ents); if gconflict != wconflict { - panic!("#{}: conflict = {}, want {}", i, gconflict, wconflict) + panic!("#{i}: conflict = {gconflict}, want {wconflict}") } } } @@ -836,7 +836,7 @@ mod test { for (i, &(last_index, term, up_to_date)) in tests.iter().enumerate() { let g_up_to_date = raft_log.is_up_to_date(last_index, term); if g_up_to_date != up_to_date { - panic!("#{}: uptodate = {}, want {}", i, g_up_to_date, up_to_date); + panic!("#{i}: uptodate = {g_up_to_date}, want {up_to_date}"); } } } @@ -845,7 +845,7 @@ mod test { fn test_append() { let l = default_logger(); let previous_ents = vec![new_entry(1, 1), new_entry(2, 2)]; - let tests = vec![ + let tests = [ (vec![], 2, vec![new_entry(1, 1), new_entry(2, 2)], 3), ( vec![new_entry(3, 2)], @@ -869,15 +869,15 @@ mod test { let mut raft_log = RaftLog::new(store, l.clone(), &Config::default()); let index = raft_log.append(ents); if index != windex { - panic!("#{}: last_index = {}, want {}", i, index, windex); + panic!("#{i}: last_index = {index}, want {windex}"); } match raft_log.entries(1, None, GetEntriesContext::empty(false)) { - Err(e) => panic!("#{}: unexpected error {}", i, e), + Err(e) => panic!("#{i}: unexpected error {e}"), Ok(ref g) if g != wents => panic!("#{}: logEnts = {:?}, want {:?}", i, &g, &wents), _ => { let goff = raft_log.unstable.offset; if goff != wunstable { - panic!("#{}: unstable = {}, want {}", i, goff, wunstable); + panic!("#{i}: unstable = {goff}, want {wunstable}"); } } } @@ -913,7 +913,7 @@ mod test { for j in offset..=raft_log.last_index() { assert_eq!(j, raft_log.term(j).expect("")); if !raft_log.match_term(j, j) { - panic!("match_term({}) = false, want true", j); + panic!("match_term({j}) = false, want true"); } } @@ -961,7 +961,7 @@ mod test { for (i, &(index, w)) in tests.iter().enumerate() { let term = raft_log.term(index).expect(""); if term != w { - panic!("#{}: at = {}, want {}", i, term, w); + panic!("#{i}: at = {term}, want {w}"); } } } @@ -992,7 +992,7 @@ mod test { for (i, &(index, w)) in tests.iter().enumerate() { let term = raft_log.term(index).expect(""); if term != w { - panic!("#{}: at = {}, want {}", i, term, w); + panic!("#{i}: at = {term}, want {w}"); } } } @@ -1132,12 +1132,12 @@ mod test { raft_log.stable_entries(e.get_index(), e.get_term()); } if &ents != wents { - panic!("#{}: unstableEnts = {:?}, want {:?}", i, ents, wents); + panic!("#{i}: unstableEnts = {ents:?}, want {wents:?}"); } let w = previous_ents[previous_ents.len() - 1].index + 1; let g = raft_log.unstable.offset; if g != w { - panic!("#{}: unstable = {}, want {}", i, g, w); + panic!("#{i}: unstable = {g}, want {w}"); } } } @@ -1200,18 +1200,12 @@ mod test { let expect_has_next = expect_entries.is_some(); let actual_has_next = raft_log.has_next_entries(); if actual_has_next != expect_has_next { - panic!( - "#{}: hasNext = {}, want {}", - i, actual_has_next, expect_has_next - ); + panic!("#{i}: hasNext = {actual_has_next}, want {expect_has_next}"); } let next_entries = raft_log.next_entries(None); if next_entries != expect_entries.map(|n| n.to_vec()) { - panic!( - "#{}: next_entries = {:?}, want {:?}", - i, next_entries, expect_entries - ); + panic!("#{i}: next_entries = {next_entries:?}, want {expect_entries:?}"); } } @@ -1287,18 +1281,12 @@ mod test { let expect_has_next = expect_entries.is_some(); let actual_has_next = raft_log.has_next_entries(); if actual_has_next != expect_has_next { - panic!( - "#{}: hasNext = {}, want {}", - i, actual_has_next, expect_has_next - ); + panic!("#{i}: hasNext = {actual_has_next}, want {expect_has_next}"); } let next_entries = raft_log.next_entries(None); if next_entries != expect_entries.map(|n| n.to_vec()) { - panic!( - "#{}: next_entries = {:?}, want {:?}", - i, next_entries, expect_entries - ); + panic!("#{i}: next_entries = {next_entries:?}, want {expect_entries:?}"); } } } @@ -1429,7 +1417,7 @@ mod test { } if let Ok(ref g) = slice_res { if g != w { - panic!("#{}: from {} to {} = {:?}, want {:?}", i, from, to, g, w); + panic!("#{i}: from {from} to {to} = {g:?}, want {w:?}"); } } } @@ -1487,8 +1475,7 @@ mod test { .unwrap(); assert_eq!( got, want, - "scan() and slice() mismatch on [{}, {}) @ {}", - lo, hi, page_size + "scan() and slice() mismatch on [{lo}, {hi}) @ {page_size}" ); } } @@ -1729,13 +1716,13 @@ mod test { let gcommitted = raft_log.committed; let gpersisted = raft_log.persisted; if glasti != wlasti { - panic!("#{}: lastindex = {:?}, want {:?}", i, glasti, wlasti); + panic!("#{i}: lastindex = {glasti:?}, want {wlasti:?}"); } if gcommitted != wcommit { - panic!("#{}: committed = {}, want {}", i, gcommitted, wcommit); + panic!("#{i}: committed = {gcommitted}, want {wcommit}"); } if gpersisted != wpersist { - panic!("#{}: persisted = {}, want {}", i, gpersisted, wpersist); + panic!("#{i}: persisted = {gpersisted}, want {wpersist}"); } let ents_len = ents.len() as u64; if glasti.is_some() && ents_len != 0 { @@ -1747,7 +1734,7 @@ mod test { .slice(from, to, None, GetEntriesContext::empty(false)) .expect(""); if &gents != ents { - panic!("#{}: appended entries = {:?}, want {:?}", i, gents, ents); + panic!("#{i}: appended entries = {gents:?}, want {ents:?}"); } } } @@ -1771,11 +1758,11 @@ mod test { let has_panic = panic::catch_unwind(AssertUnwindSafe(|| raft_log.commit_to(commit))).is_err(); if has_panic ^ wpanic { - panic!("#{}: panic = {}, want {}", i, has_panic, wpanic) + panic!("#{i}: panic = {has_panic}, want {wpanic}") } if !has_panic && raft_log.committed != wcommit { let actual_committed = raft_log.committed; - panic!("#{}: committed = {}, want {}", i, actual_committed, wcommit); + panic!("#{i}: committed = {actual_committed}, want {wcommit}"); } } } @@ -1812,7 +1799,7 @@ mod test { let res = panic::catch_unwind(AssertUnwindSafe(|| raft_log.store.wl().compact(*idx))); if !(should_panic ^ res.is_ok()) { - panic!("#{}: should_panic: {}, but got: {:?}", i, should_panic, res); + panic!("#{i}: should_panic: {should_panic}, but got: {res:?}"); } if !should_panic { let l = raft_log.all_entries().len(); @@ -1873,7 +1860,7 @@ mod test { ); } if !w_err_compacted && check_res.is_some() { - panic!("#{}: unexpected err {:?}", i, check_res) + panic!("#{i}: unexpected err {check_res:?}") } } } diff --git a/src/storage.rs b/src/storage.rs index 99e02e3a6..a99fcddd5 100644 --- a/src/storage.rs +++ b/src/storage.rs @@ -201,8 +201,7 @@ impl MemStorageCore { pub fn commit_to(&mut self, index: u64) -> Result<()> { assert!( self.has_entry_at(index), - "commit_to {} but the entry does not exist", - index + "commit_to {index} but the entry does not exist" ); let diff = (index - self.entries[0].index) as usize; @@ -566,7 +565,7 @@ mod test { let t = storage.term(idx); if t != wterm { - panic!("#{}: expect res {:?}, got {:?}", i, wterm, t); + panic!("#{i}: expect res {wterm:?}, got {t:?}"); } } } @@ -630,7 +629,7 @@ mod test { storage.wl().entries = ents.clone(); let e = storage.entries(lo, hi, maxsize, GetEntriesContext::empty(false)); if e != wentries { - panic!("#{}: expect entries {:?}, got {:?}", i, wentries, e); + panic!("#{i}: expect entries {wentries:?}, got {e:?}"); } } } @@ -644,14 +643,14 @@ mod test { let wresult = Ok(5); let result = storage.last_index(); if result != wresult { - panic!("want {:?}, got {:?}", wresult, result); + panic!("want {wresult:?}, got {result:?}"); } storage.wl().append(&[new_entry(6, 5)]).unwrap(); let wresult = Ok(6); let result = storage.last_index(); if result != wresult { - panic!("want {:?}, got {:?}", wresult, result); + panic!("want {wresult:?}, got {result:?}"); } } @@ -677,7 +676,7 @@ mod test { storage.wl().compact(idx).unwrap(); let index = storage.first_index().unwrap(); if index != windex { - panic!("#{}: want {}, index {}", i, windex, index); + panic!("#{i}: want {windex}, index {index}"); } let term = if let Ok(v) = storage.entries(index, index + 1, 1, GetEntriesContext::empty(false)) @@ -687,7 +686,7 @@ mod test { 0 }; if term != wterm { - panic!("#{}: want {}, term {}", i, wterm, term); + panic!("#{i}: want {wterm}, term {term}"); } let last = storage.last_index().unwrap(); let len = storage @@ -695,7 +694,7 @@ mod test { .unwrap() .len(); if len != wlen { - panic!("#{}: want {}, term {}", i, wlen, len); + panic!("#{i}: want {wlen}, term {len}"); } } } @@ -729,7 +728,7 @@ mod test { let result = storage.snapshot(windex, 0); if result != wresult { - panic!("#{}: want {:?}, got {:?}", i, wresult, result); + panic!("#{i}: want {wresult:?}, got {result:?}"); } } } @@ -789,7 +788,7 @@ mod test { let _ = res.unwrap(); let e = &storage.wl().entries; if *e != wentries { - panic!("#{}: want {:?}, entries {:?}", i, wentries, e); + panic!("#{i}: want {wentries:?}, entries {e:?}"); } } else { res.unwrap_err(); diff --git a/src/tracker/progress.rs b/src/tracker/progress.rs index dc19bb81f..166167fc2 100644 --- a/src/tracker/progress.rs +++ b/src/tracker/progress.rs @@ -294,7 +294,7 @@ mod tests { #[test] fn test_progress_become_probe() { let matched = 1u64; - let mut tests = vec![ + let mut tests = [ ( new_progress(ProgressState::Replicate, matched, 5, 0, 256), 2, @@ -359,7 +359,7 @@ mod tests { p.matched = prev_m; let ok = p.maybe_update(update); if ok != wok { - panic!("#{}: ok= {}, want {}", i, ok, wok); + panic!("#{i}: ok= {ok}, want {wok}"); } if p.matched != wm { panic!("#{}: match= {}, want {}", i, p.matched, wm); diff --git a/src/util.rs b/src/util.rs index c4fd582f1..04d89427e 100644 --- a/src/util.rs +++ b/src/util.rs @@ -90,9 +90,9 @@ struct FormatKeyValueList { impl slog::Serializer for FormatKeyValueList { fn emit_arguments(&mut self, key: slog::Key, val: &fmt::Arguments) -> slog::Result { if !self.buffer.is_empty() { - write!(&mut self.buffer, ", {}: {}", key, val).unwrap(); + write!(&mut self.buffer, ", {key}: {val}").unwrap(); } else { - write!(&mut self.buffer, "{}: {}", key, val).unwrap(); + write!(&mut self.buffer, "{key}: {val}").unwrap(); } Ok(()) }