mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 12:19:15 +00:00
feat(sourcemap): impl std::fmt::Display for Error (#3902)
This commit is contained in:
parent
77a4a0b77c
commit
01572f037d
1 changed files with 31 additions and 0 deletions
|
|
@ -1,3 +1,5 @@
|
|||
use std::{error, fmt};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Error {
|
||||
/// a VLQ string was malformed and data was left over
|
||||
|
|
@ -15,6 +17,35 @@ pub enum Error {
|
|||
/// a reference to a non existing name was encountered
|
||||
BadNameReference(u32),
|
||||
}
|
||||
impl fmt::Display for Error {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Error::VlqLeftover => write!(f, "VLQ string was malformed and data was left over"),
|
||||
Error::VlqNoValues => write!(f, "VLQ string was empty and no values could be decoded"),
|
||||
Error::VlqOverflow => write!(f, "The input encoded a number that didn't fit into i64"),
|
||||
Error::BadJson(err) => write!(f, "JSON parsing error: {err}"),
|
||||
Error::BadSegmentSize(size) => {
|
||||
write!(f, "Mapping segment had an unsupported size of {size}")
|
||||
}
|
||||
Error::BadSourceReference(idx) => {
|
||||
write!(f, "Reference to non-existing source at position {idx}")
|
||||
}
|
||||
Error::BadNameReference(idx) => {
|
||||
write!(f, "Reference to non-existing name at position {idx}")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl error::Error for Error {
|
||||
fn source(&self) -> Option<&(dyn error::Error + 'static)> {
|
||||
if let Self::BadJson(err) = self {
|
||||
Some(err)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// The result of decoding.
|
||||
pub type Result<T> = std::result::Result<T, Error>;
|
||||
|
|
|
|||
Loading…
Reference in a new issue