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 } |