debugdata.rs
36 lines
| 848 B
| application/rls-services+xml
|
RustLexer
Antoine Cezar
|
r46099 | use crate::commands::Command; | ||
Simon Sapin
|
r47163 | use crate::error::CommandError; | ||
Antoine Cezar
|
r46099 | use crate::ui::Ui; | ||
Simon Sapin
|
r47165 | use hg::operations::{debug_data, DebugDataKind}; | ||
Simon Sapin
|
r46782 | use hg::repo::Repo; | ||
Antoine Cezar
|
r46101 | use micro_timer::timed; | ||
Antoine Cezar
|
r46099 | |||
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> { | ||||
Antoine Cezar
|
r46101 | #[timed] | ||
Antoine Cezar
|
r46099 | fn run(&self, ui: &Ui) -> Result<(), CommandError> { | ||
Simon Sapin
|
r46782 | let repo = Repo::find()?; | ||
let data = debug_data(&repo, self.rev, self.kind) | ||||
Simon Sapin
|
r47165 | .map_err(|e| (e, self.rev))?; | ||
Antoine Cezar
|
r46099 | |||
let mut stdout = ui.stdout_buffer(); | ||||
stdout.write_all(&data)?; | ||||
stdout.flush()?; | ||||
Ok(()) | ||||
} | ||||
} | ||||