Mercurial > public > mercurial-scm > hg
diff rust/rhg/src/commands/cat.rs @ 46436:252d1bdba33d
rhg: replace `map_*_error` functions with `From` impls
Differential Revision: https://phab.mercurial-scm.org/D9876
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Tue, 26 Jan 2021 20:31:26 +0100 |
parents | 3e2d539d0d1a |
children | ca3f73cc3cf4 |
line wrap: on
line diff
--- a/rust/rhg/src/commands/cat.rs Tue Jan 26 20:05:37 2021 +0100 +++ b/rust/rhg/src/commands/cat.rs Tue Jan 26 20:31:26 2021 +0100 @@ -1,8 +1,7 @@ use crate::commands::Command; use crate::error::CommandError; -use crate::ui::utf8_to_local; use crate::ui::Ui; -use hg::operations::{cat, CatRevError}; +use hg::operations::cat; use hg::repo::Repo; use hg::utils::hg_path::HgPathBuf; use micro_timer::timed; @@ -49,55 +48,10 @@ match self.rev { Some(rev) => { - let data = cat(&repo, rev, &files) - .map_err(|e| map_rev_error(rev, e))?; + let data = cat(&repo, rev, &files).map_err(|e| (e, rev))?; self.display(ui, &data) } None => Err(CommandError::Unimplemented.into()), } } } - -/// Convert `CatRevError` to `CommandError` -fn map_rev_error(rev: &str, err: CatRevError) -> CommandError { - match err { - CatRevError::IoError(err) => CommandError::Abort(Some( - utf8_to_local(&format!("abort: {}\n", err)).into(), - )), - CatRevError::InvalidRevision => CommandError::Abort(Some( - utf8_to_local(&format!( - "abort: invalid revision identifier {}\n", - rev - )) - .into(), - )), - CatRevError::AmbiguousPrefix => CommandError::Abort(Some( - utf8_to_local(&format!( - "abort: ambiguous revision identifier {}\n", - rev - )) - .into(), - )), - CatRevError::UnsuportedRevlogVersion(version) => { - CommandError::Abort(Some( - utf8_to_local(&format!( - "abort: unsupported revlog version {}\n", - version - )) - .into(), - )) - } - CatRevError::CorruptedRevlog => { - CommandError::Abort(Some("abort: corrupted revlog\n".into())) - } - CatRevError::UnknowRevlogDataFormat(format) => { - CommandError::Abort(Some( - utf8_to_local(&format!( - "abort: unknow revlog dataformat {:?}\n", - format - )) - .into(), - )) - } - } -}