Mercurial > public > mercurial-scm > hg-stable
annotate rust/hg-core/examples/nodemap/main.rs @ 53040:cdd7bf612c7b stable tip
bundle-spec: properly format boolean parameter (issue6960)
This was breaking automatic clone bundle generation. This changeset fixes it and
add a test to catch it in the future.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 11 Mar 2025 02:29:42 +0100 |
parents | 4c5f6e95df84 |
children |
rev | line source |
---|---|
44417
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::*; |
47983
e834b79def74
rust: Switch to the memmap2-rs crate
Simon Sapin <simon.sapin@octobus.net>
parents:
46500
diff
changeset
|
9 use memmap2::MmapOptions; |
44417
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() { |
50990
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
39 let rev = Revision(rev as BaseRevision); |
44417
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()); |
49993
0d301f4180f5
rust-clippy: use `write_all` since we're not expecting a partial write
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49987
diff
changeset
|
43 file.write_all(&nm.into_readonly_and_added_bytes().1)?; |
44417
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(); |
46500
18a261b11b20
rust: Remove hex parsing from the nodemap
Simon Sapin <simon.sapin@octobus.net>
parents:
46495
diff
changeset
|
50 let res = NodePrefix::from_hex(prefix).map(|p| nm.find_bin(index, p)); |
44417
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) |
50990
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
58 .map(|_| { |
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
59 *index |
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
60 .node(Revision((rng.gen::<u32>() % len) as BaseRevision)) |
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
61 .unwrap() |
4c5f6e95df84
rust: make `Revision` a newtype
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49993
diff
changeset
|
62 }) |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
63 .collect(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
64 if queries < 10 { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
65 let nodes_hex: Vec<String> = |
46495
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44417
diff
changeset
|
66 nodes.iter().map(|n| format!("{:x}", n)).collect(); |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
67 println!("Nodes: {:?}", nodes_hex); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
68 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
69 let mut last: Option<Revision> = None; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
70 let start = Instant::now(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
71 for node in nodes.iter() { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
72 last = nm.find_bin(index, node.into()).unwrap(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
73 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
74 let elapsed = start.elapsed(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
75 println!( |
46495
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44417
diff
changeset
|
76 "Did {} queries in {:?} (mean {:?}), last was {:x} with result {:?}", |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
77 queries, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
78 elapsed, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
79 elapsed / (queries as u32), |
46495
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44417
diff
changeset
|
80 nodes.last().unwrap(), |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
81 last |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
82 ); |
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 fn main() { |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
86 use clap::{Parser, Subcommand}; |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
87 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
88 #[derive(Parser)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
89 #[command()] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
90 /// Nodemap pure Rust example |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
91 struct App { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
92 // Path to the repository, always necessary for its index |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
93 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
94 repository: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
95 // Path to the nodemap file, independent of REPOSITORY |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
96 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
97 nodemap_file: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
98 #[command(subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
99 command: Command, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
100 } |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
101 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
102 #[derive(Subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
103 enum Command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
104 /// Create `NODEMAP_FILE` by scanning repository index |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
105 Create, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
106 /// Query `NODEMAP_FILE` for `prefix` |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
107 Query { prefix: String }, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
108 /// Perform #`QUERIES` random successful queries on `NODEMAP_FILE` |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
109 Bench { queries: usize }, |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
110 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
111 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
112 let app = App::parse(); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
113 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
114 let repo = &app.repository; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
115 let nm_path = &app.nodemap_file; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
116 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
117 let index = mmap_index(repo); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
118 let nm = mmap_nodemap(nm_path); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
119 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
120 match &app.command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
121 Command::Create => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
122 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
123 "Creating nodemap file {} for repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
124 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
125 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
126 ); |
49987
58074252db3c
rust: run `cargo clippy`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49755
diff
changeset
|
127 create(&index, Path::new(nm_path)).unwrap(); |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
128 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
129 Command::Bench { queries } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
130 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
131 "Doing {} random queries in nodemap file {} of repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
132 queries, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
133 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
134 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
135 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
136 bench(&index, &nm, *queries); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
137 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
138 Command::Query { prefix } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
139 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
140 "Querying {} in nodemap file {} of repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
141 prefix, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
142 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
143 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
144 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
145 query(&index, &nm, prefix); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
146 } |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
147 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
148 } |