Mercurial > public > mercurial-scm > hg-stable
annotate rust/hg-core/examples/nodemap/main.rs @ 49987:58074252db3c
rust: run `cargo clippy`
These automatic fixes are good to have because they make the code
more idiomatic and less surprising.
The transform from `sort` -> `sort_unstable` is questionable, but this is
only in a test, so it doesn't matter in our case.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Mon, 09 Jan 2023 17:40:03 +0100 |
parents | 14bfd22a57a9 |
children | 0d301f4180f5 |
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() { |
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(); |
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) |
49987
58074252db3c
rust: run `cargo clippy`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49755
diff
changeset
|
58 .map(|_| *index.node((rng.gen::<u32>() % len) as Revision).unwrap()) |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
59 .collect(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
60 if queries < 10 { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
61 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
|
62 nodes.iter().map(|n| format!("{:x}", n)).collect(); |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
63 println!("Nodes: {:?}", nodes_hex); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
64 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
65 let mut last: Option<Revision> = None; |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
66 let start = Instant::now(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
67 for node in nodes.iter() { |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
68 last = nm.find_bin(index, node.into()).unwrap(); |
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 elapsed = start.elapsed(); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
71 println!( |
46495
6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
Simon Sapin <simon.sapin@octobus.net>
parents:
44417
diff
changeset
|
72 "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
|
73 queries, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
74 elapsed, |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
75 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
|
76 nodes.last().unwrap(), |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
77 last |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
78 ); |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
79 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
80 |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
81 fn main() { |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
82 use clap::{Parser, Subcommand}; |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
83 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
84 #[derive(Parser)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
85 #[command()] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
86 /// Nodemap pure Rust example |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
87 struct App { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
88 // 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
|
89 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
90 repository: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
91 // 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
|
92 #[arg(short, long)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
93 nodemap_file: PathBuf, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
94 #[command(subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
95 command: Command, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
96 } |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
97 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
98 #[derive(Subcommand)] |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
99 enum Command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
100 /// Create `NODEMAP_FILE` by scanning repository index |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
101 Create, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
102 /// Query `NODEMAP_FILE` for `prefix` |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
103 Query { prefix: String }, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
104 /// 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
|
105 Bench { queries: usize }, |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
106 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
107 |
49755
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
108 let app = App::parse(); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
109 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
110 let repo = &app.repository; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
111 let nm_path = &app.nodemap_file; |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
112 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
113 let index = mmap_index(repo); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
114 let nm = mmap_nodemap(nm_path); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
115 |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
116 match &app.command { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
117 Command::Create => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
118 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
119 "Creating nodemap file {} for repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
120 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
121 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
122 ); |
49987
58074252db3c
rust: run `cargo clippy`
Rapha?l Gom?s <rgomes@octobus.net>
parents:
49755
diff
changeset
|
123 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
|
124 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
125 Command::Bench { queries } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
126 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
127 "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
|
128 queries, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
129 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
130 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
131 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
132 bench(&index, &nm, *queries); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
133 } |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
134 Command::Query { prefix } => { |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
135 println!( |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
136 "Querying {} in nodemap file {} of repository {}", |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
137 prefix, |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
138 nm_path.display(), |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
139 repo.display() |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
140 ); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
141 query(&index, &nm, prefix); |
14bfd22a57a9
hg-core: upgrade `clap` dependency
Rapha?l Gom?s <rgomes@octobus.net>
parents:
47983
diff
changeset
|
142 } |
44417
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
143 } |
8f7c6656ac79
rust-nodemap: pure Rust example
Georges Racinet <georges.racinet@octobus.net>
parents:
diff
changeset
|
144 } |