##// END OF EJS Templates
rust-index: use interior mutability in head revs and caches...
rust-index: use interior mutability in head revs and caches For upcoming changes in `hg-cpython` switching to the `hg-core` index in ancestors iterators, we will need to avoid excessive mutability, restricting the use of mutable references on `hg::index::Index` to methods that actually logically mutate it, whereas the maintenance of caches such as `head_revs` clearly does not. We illustrate that immediately by switching to immutable borrows in the corresponding methods of `hg-cpython::MixedIndex`

File last commit:

r50534:37bc3ede default
r52127:59183a19 default
Show More
config.rs
37 lines | 1.0 KiB | application/rls-services+xml | RustLexer
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 use crate::error::CommandError;
use clap::Arg;
use format_bytes::format_bytes;
use hg::errors::HgError;
use hg::utils::SliceExt;
pub const HELP_TEXT: &str = "
With one argument of the form section.name, print just the value of that config item.
";
Raphaël Gomès
rhg: upgrade `clap` dependency...
r50534 pub fn args() -> clap::Command {
clap::command!("config")
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 .arg(
Raphaël Gomès
rhg: upgrade `clap` dependency...
r50534 Arg::new("name")
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 .help("the section.name to print")
.value_name("NAME")
Raphaël Gomès
rhg: upgrade `clap` dependency...
r50534 .required(true),
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 )
.about(HELP_TEXT)
}
Simon Sapin
rhg: Group values passed to every sub-command into a struct...
r47334 pub fn run(invocation: &crate::CliInvocation) -> Result<(), CommandError> {
let (section, name) = invocation
.subcommand_args
Raphaël Gomès
rhg: upgrade `clap` dependency...
r50534 .get_one::<String>("name")
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 .expect("missing required CLI argument")
.as_bytes()
.split_2(b'.')
Simon Sapin
rhg: Fall back to Python on unsupported `rhg config <section>`...
r47460 .ok_or_else(|| HgError::unsupported("hg config <section>"))?;
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255
Simon Sapin
rhg: Return an error code for `rhg config Section.idontexist`...
r47481 if let Some(value) = invocation.config.get(section, name) {
invocation.ui.write_stdout(&format_bytes!(b"{}\n", value))?;
Ok(())
} else {
Err(CommandError::Unsuccessful)
}
Simon Sapin
rhg: add limited support for the `config` sub-command...
r47255 }