summaryrefslogtreecommitdiffstats
path: root/vendor/criterion/src/error.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
commit837b550238aa671a591ccf282dddeab29cadb206 (patch)
tree914b6b8862bace72bd3245ca184d374b08d8a672 /vendor/criterion/src/error.rs
parentAdding debian version 1.70.0+dfsg2-1. (diff)
downloadrustc-837b550238aa671a591ccf282dddeab29cadb206.tar.xz
rustc-837b550238aa671a591ccf282dddeab29cadb206.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/criterion/src/error.rs')
-rwxr-xr-xvendor/criterion/src/error.rs73
1 files changed, 73 insertions, 0 deletions
diff --git a/vendor/criterion/src/error.rs b/vendor/criterion/src/error.rs
new file mode 100755
index 000000000..9b7eb17b1
--- /dev/null
+++ b/vendor/criterion/src/error.rs
@@ -0,0 +1,73 @@
+use csv::Error as CsvError;
+use serde_json::Error as SerdeError;
+use std::error::Error as StdError;
+use std::fmt;
+use std::io;
+use std::path::PathBuf;
+
+#[allow(clippy::enum_variant_names)]
+#[derive(Debug)]
+pub enum Error {
+ AccessError {
+ path: PathBuf,
+ inner: io::Error,
+ },
+ CopyError {
+ from: PathBuf,
+ to: PathBuf,
+ inner: io::Error,
+ },
+ SerdeError {
+ path: PathBuf,
+ inner: SerdeError,
+ },
+ CsvError(CsvError),
+}
+impl fmt::Display for Error {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ Error::AccessError { path, inner } => {
+ write!(f, "Failed to access file {:?}: {}", path, inner)
+ }
+ Error::CopyError { from, to, inner } => {
+ write!(f, "Failed to copy file {:?} to {:?}: {}", from, to, inner)
+ }
+ Error::SerdeError { path, inner } => write!(
+ f,
+ "Failed to read or write file {:?} due to serialization error: {}",
+ path, inner
+ ),
+ Error::CsvError(inner) => write!(f, "CSV error: {}", inner),
+ }
+ }
+}
+impl StdError for Error {
+ fn description(&self) -> &str {
+ match self {
+ Error::AccessError { .. } => "AccessError",
+ Error::CopyError { .. } => "CopyError",
+ Error::SerdeError { .. } => "SerdeError",
+ Error::CsvError(_) => "CsvError",
+ }
+ }
+
+ fn cause(&self) -> Option<&dyn StdError> {
+ match self {
+ Error::AccessError { inner, .. } => Some(inner),
+ Error::CopyError { inner, .. } => Some(inner),
+ Error::SerdeError { inner, .. } => Some(inner),
+ Error::CsvError(inner) => Some(inner),
+ }
+ }
+}
+impl From<CsvError> for Error {
+ fn from(other: CsvError) -> Error {
+ Error::CsvError(other)
+ }
+}
+
+pub type Result<T> = ::std::result::Result<T, Error>;
+
+pub(crate) fn log_error(e: &Error) {
+ error!("error: {}", e);
+}