Mercurial > public > mercurial-scm > hg
annotate rust/hg-core/examples/nodemap/main.rs @ 49637:14bfd22a57a9
hg-core: upgrade `clap` dependency
Upgrading is a finally possible now that we're supporting a more recent
version of Rust.
This required changes in the `nodemap` example.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Mon, 14 Nov 2022 17:14:20 +0100 |
parents | e834b79def74 |
children | 58074252db3c |
rev | line source |
---|---|
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
1 // Copyright 2019-2020 Georges Racinet <georges.racinet@octobus.net> |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
2 // |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
3 // This software may be used and distributed according to the terms of the |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
4 // GNU General Public License version 2 or any later version. |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
5 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
6 use hg::revlog::node::*; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
7 use hg::revlog::nodemap::*; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
8 use hg::revlog::*; |
47955
e834b79def74
rust: Switch to the memmap2-rs crate
Simon Sapin <simon.sapin@octobus.net>
parents:
46432
diff
changeset
|
9 use memmap2::MmapOptions; |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
10 use rand::Rng; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
11 use std::fs::File; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
12 use std::io; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
13 use std::io::Write; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
14 use std::path::{Path, PathBuf}; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
15 use std::time::Instant; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
16 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
17 mod index; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
18 use index::Index; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
19 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
20 fn mmap_index(repo_path: &Path) -> Index { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
21 let mut path = PathBuf::from(repo_path); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
22 path.extend([".hg", "store", "00changelog.i"].iter()); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
23 Index::load_mmap(path) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
24 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
25 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
26 fn mmap_nodemap(path: &Path) -> NodeTree { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
27 let file = File::open(path).unwrap(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
28 let mmap = unsafe { MmapOptions::new().map(&file).unwrap() }; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
29 let len = mmap.len(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
30 NodeTree::load_bytes(Box::new(mmap), len) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
31 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
32 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
33 /// Scan the whole index and create the corresponding nodemap file at `path` |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
34 fn create(index: &Index, path: &Path) -> io::Result<()> { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
35 let mut file = File::create(path)?; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
36 let start = Instant::now(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
37 let mut nm = NodeTree::default(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
38 for rev in 0..index.len() { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
39 let rev = rev as Revision; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
40 nm.insert(index, index.node(rev).unwrap(), rev).unwrap(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
41 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
42 eprintln!("Nodemap constructed in RAM in {:?}", start.elapsed()); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
43 file.write(&nm.into_readonly_and_added_bytes().1)?; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
44 eprintln!("Nodemap written to disk"); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
45 Ok(()) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
46 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
47 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
48 fn query(index: &Index, nm: &NodeTree, prefix: &str) { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
49 let start = Instant::now(); |
46432
18a261b11b20
rust: Remove hex parsing from the nodemap
Simon Sapin <simon.sapin@octobus.net>
parents:
46427
diff
changeset
|
50 let res = NodePrefix::from_hex(prefix).map(|p| nm.find_bin(index, p)); |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
51 println!("Result found in {:?}: {:?}", start.elapsed(), res); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
52 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
53 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
54 fn bench(index: &Index, nm: &NodeTree, queries: usize) { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
55 let len = index.len() as u32; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
56 let mut rng = rand::thread_rng(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
57 let nodes: Vec<Node> = (0..queries) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
58 .map(|_| { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
59 index |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
60 .node((rng.gen::<u32>() % len) as Revision) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
61 .unwrap() |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
62 .clone() |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
63 }) |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
64 .collect(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
65 if queries < 10 { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
66 let nodes_hex: Vec<String> = |
46427
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44386
diff
changeset
|
67 nodes.iter().map(|n| format!("{:x}", n)).collect(); |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
68 println!("Nodes: {:?}", nodes_hex); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
69 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
70 let mut last: Option<Revision> = None; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
71 let start = Instant::now(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
72 for node in nodes.iter() { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
73 last = nm.find_bin(index, node.into()).unwrap(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
74 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
75 let elapsed = start.elapsed(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
76 println!( |
46427
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44386
diff
changeset
|
77 "Did {} queries in {:?} (mean {:?}), last was {:x} with result {:?}", |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
78 queries, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
79 elapsed, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
80 elapsed / (queries as u32), |
46427
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44386
diff
changeset
|
81 nodes.last().unwrap(), |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
82 last |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
83 ); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
84 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
85 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
86 fn main() { |
49637
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
87 use clap::{Parser, Subcommand}; |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
88 |
49637
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
89 #[derive(Parser)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
90 #[command()] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
91 /// Nodemap pure Rust example |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
92 struct App { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
93 // Path to the repository, always necessary for its index |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
94 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
95 repository: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
96 // Path to the nodemap file, independent of REPOSITORY |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
97 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
98 nodemap_file: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
99 #[command(subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
100 command: Command, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
101 } |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
102 |
49637
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
103 #[derive(Subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
104 enum Command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
105 /// Create `NODEMAP_FILE` by scanning repository index |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
106 Create, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
107 /// Query `NODEMAP_FILE` for `prefix` |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
108 Query { prefix: String }, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
109 /// Perform #`QUERIES` random successful queries on `NODEMAP_FILE` |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
110 Bench { queries: usize }, |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
111 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
112 |
49637
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
113 let app = App::parse(); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
114 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
115 let repo = &app.repository; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
116 let nm_path = &app.nodemap_file; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
117 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
118 let index = mmap_index(repo); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
119 let nm = mmap_nodemap(nm_path); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
120 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
121 match &app.command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
122 Command::Create => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
123 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
124 "Creating nodemap file {} for repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
125 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
126 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
127 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
128 create(&index, &Path::new(nm_path)).unwrap(); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
129 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
130 Command::Bench { queries } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
131 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
132 "Doing {} random queries in nodemap file {} of repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
133 queries, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
134 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
135 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
136 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
137 bench(&index, &nm, *queries); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
138 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
139 Command::Query { prefix } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
140 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
141 "Querying {} in nodemap file {} of repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
142 prefix, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
143 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
144 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
145 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
146 query(&index, &nm, prefix); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47955
diff
changeset
|
147 } |
44386
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
148 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
149 } |