Mercurial > public > mercurial-scm > hg-stable
diff rust/rhg/src/commands/cat.rs @ 46502:3e2d539d0d1a
rust: remove `FooError` structs with only `kind: FooErrorKind` enum field
Use the enum directly as `FooError` instead.
Differential Revision: https://phab.mercurial-scm.org/D9874
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Tue, 26 Jan 2021 19:07:24 +0100 |
parents | 8a4914397d02 |
children | 252d1bdba33d |
line wrap: on
line diff
--- a/rust/rhg/src/commands/cat.rs Tue Jan 26 18:31:46 2021 +0100 +++ b/rust/rhg/src/commands/cat.rs Tue Jan 26 19:07:24 2021 +0100 @@ -1,8 +1,8 @@ use crate::commands::Command; -use crate::error::{CommandError, CommandErrorKind}; +use crate::error::CommandError; use crate::ui::utf8_to_local; use crate::ui::Ui; -use hg::operations::{cat, CatRevError, CatRevErrorKind}; +use hg::operations::{cat, CatRevError}; use hg::repo::Repo; use hg::utils::hg_path::HgPathBuf; use micro_timer::timed; @@ -34,16 +34,16 @@ let repo = Repo::find()?; repo.check_requirements()?; let cwd = std::env::current_dir() - .or_else(|e| Err(CommandErrorKind::CurrentDirNotFound(e)))?; + .or_else(|e| Err(CommandError::CurrentDirNotFound(e)))?; let mut files = vec![]; for file in self.files.iter() { let normalized = cwd.join(&file); let stripped = normalized .strip_prefix(&repo.working_directory_path()) - .or(Err(CommandErrorKind::Abort(None)))?; + .or(Err(CommandError::Abort(None)))?; let hg_file = HgPathBuf::try_from(stripped.to_path_buf()) - .or(Err(CommandErrorKind::Abort(None)))?; + .or(Err(CommandError::Abort(None)))?; files.push(hg_file); } @@ -53,53 +53,51 @@ .map_err(|e| map_rev_error(rev, e))?; self.display(ui, &data) } - None => Err(CommandErrorKind::Unimplemented.into()), + None => Err(CommandError::Unimplemented.into()), } } } -/// Convert `CatRevErrorKind` to `CommandError` +/// Convert `CatRevError` to `CommandError` fn map_rev_error(rev: &str, err: CatRevError) -> CommandError { - CommandError { - kind: match err.kind { - CatRevErrorKind::IoError(err) => CommandErrorKind::Abort(Some( - utf8_to_local(&format!("abort: {}\n", err)).into(), - )), - CatRevErrorKind::InvalidRevision => CommandErrorKind::Abort(Some( + 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: invalid revision identifier {}\n", - rev - )) - .into(), - )), - CatRevErrorKind::AmbiguousPrefix => CommandErrorKind::Abort(Some( - utf8_to_local(&format!( - "abort: ambiguous revision identifier {}\n", - rev + "abort: unsupported revlog version {}\n", + version )) .into(), - )), - CatRevErrorKind::UnsuportedRevlogVersion(version) => { - CommandErrorKind::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 )) - } - CatRevErrorKind::CorruptedRevlog => CommandErrorKind::Abort(Some( - "abort: corrupted revlog\n".into(), - )), - CatRevErrorKind::UnknowRevlogDataFormat(format) => { - CommandErrorKind::Abort(Some( - utf8_to_local(&format!( - "abort: unknow revlog dataformat {:?}\n", - format - )) - .into(), - )) - } - }, + .into(), + )) + } } }