rust/rhg/src/error.rs
changeset 46731 3d692e724d06
parent 46666 33f2d56acc73
child 46735 12d59eec7f1d
equal deleted inserted replaced
46730:dfd35823635b 46731:3d692e724d06
    85 impl<'a> From<&'a NoRepoInCwdError> for CommandError {
    85 impl<'a> From<&'a NoRepoInCwdError> for CommandError {
    86     fn from(error: &'a NoRepoInCwdError) -> Self {
    86     fn from(error: &'a NoRepoInCwdError) -> Self {
    87         let NoRepoInCwdError { cwd } = error;
    87         let NoRepoInCwdError { cwd } = error;
    88         CommandError::Abort {
    88         CommandError::Abort {
    89             message: format_bytes!(
    89             message: format_bytes!(
    90                 b"no repository found in '{}' (.hg not found)!",
    90                 b"abort: no repository found in '{}' (.hg not found)!",
    91                 get_bytes_from_path(cwd)
    91                 get_bytes_from_path(cwd)
    92             ),
    92             ),
    93         }
    93         }
    94     }
    94     }
    95 }
    95 }
   106 impl From<ConfigParseError> for CommandError {
   106 impl From<ConfigParseError> for CommandError {
   107     fn from(error: ConfigParseError) -> Self {
   107     fn from(error: ConfigParseError) -> Self {
   108         let ConfigParseError {
   108         let ConfigParseError {
   109             origin,
   109             origin,
   110             line,
   110             line,
   111             bytes,
   111             message,
   112         } = error;
   112         } = error;
   113         let line_message = if let Some(line_number) = line {
   113         let line_message = if let Some(line_number) = line {
   114             format_bytes!(b" at line {}", line_number.to_string().into_bytes())
   114             format_bytes!(b":{}", line_number.to_string().into_bytes())
   115         } else {
   115         } else {
   116             Vec::new()
   116             Vec::new()
   117         };
   117         };
   118         CommandError::Abort {
   118         CommandError::Abort {
   119             message: format_bytes!(
   119             message: format_bytes!(
   120                 b"config parse error in {}{}: '{}'",
   120                 b"config error at {}{}: {}",
   121                 origin,
   121                 origin,
   122                 line_message,
   122                 line_message,
   123                 bytes
   123                 message
   124             ),
   124             ),
   125         }
   125         }
   126     }
   126     }
   127 }
   127 }
   128 
   128 
   129 impl From<(RevlogError, &str)> for CommandError {
   129 impl From<(RevlogError, &str)> for CommandError {
   130     fn from((err, rev): (RevlogError, &str)) -> CommandError {
   130     fn from((err, rev): (RevlogError, &str)) -> CommandError {
   131         match err {
   131         match err {
   132             RevlogError::InvalidRevision => CommandError::abort(format!(
   132             RevlogError::InvalidRevision => CommandError::abort(format!(
   133                 "invalid revision identifier {}",
   133                 "abort: invalid revision identifier: {}",
   134                 rev
   134                 rev
   135             )),
   135             )),
   136             RevlogError::AmbiguousPrefix => CommandError::abort(format!(
   136             RevlogError::AmbiguousPrefix => CommandError::abort(format!(
   137                 "ambiguous revision identifier {}",
   137                 "abort: ambiguous revision identifier: {}",
   138                 rev
   138                 rev
   139             )),
   139             )),
   140             RevlogError::Other(error) => error.into(),
   140             RevlogError::Other(error) => error.into(),
   141         }
   141         }
   142     }
   142     }