##// END OF EJS Templates
rust: Use the DisplayBytes trait in config printing...
rust: Use the DisplayBytes trait in config printing This is similar to `std::fmt::Display`, but for arbitrary bytes instead of Unicode. Writing to an abstract output stream helps avoid allocating intermediate `Vec<u8>` buffers. Differential Revision: https://phab.mercurial-scm.org/D9966

File last commit:

r47231:1a00a578 default
r47249:eace48b4 default
Show More
debugdata.rs
37 lines | 895 B | application/rls-services+xml | RustLexer
use crate::commands::Command;
use crate::error::CommandError;
use crate::ui::Ui;
use hg::config::Config;
use hg::operations::{debug_data, DebugDataKind};
use hg::repo::Repo;
use micro_timer::timed;
pub const HELP_TEXT: &str = "
Dump the contents of a data file revision
";
pub struct DebugDataCommand<'a> {
rev: &'a str,
kind: DebugDataKind,
}
impl<'a> DebugDataCommand<'a> {
pub fn new(rev: &'a str, kind: DebugDataKind) -> Self {
DebugDataCommand { rev, kind }
}
}
impl<'a> Command for DebugDataCommand<'a> {
#[timed]
fn run(&self, ui: &Ui, config: &Config) -> Result<(), CommandError> {
let repo = Repo::find(config)?;
let data = debug_data(&repo, self.rev, self.kind)
.map_err(|e| (e, self.rev))?;
let mut stdout = ui.stdout_buffer();
stdout.write_all(&data)?;
stdout.flush()?;
Ok(())
}
}