aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2021-06-13 13:43:03 +0200
committerTeddy Wing2021-06-13 13:43:03 +0200
commit3b55e4a839f0b834146e7f86cb5b6b4378d1e59c (patch)
tree85f84a8fb5a252c196c39c84cde677c5e79df328
parentf5e63179e6ab176d145e96786df9d3d0bdaaf7a1 (diff)
downloadreflectub-3b55e4a839f0b834146e7f86cb5b6b4378d1e59c.tar.bz2
Move `MultiError` to its own file
-rw-r--r--src/main.rs37
-rw-r--r--src/multi_error.rs51
2 files changed, 54 insertions, 34 deletions
diff --git a/src/main.rs b/src/main.rs
index 8331237..6962370 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -27,8 +27,10 @@ use rusqlite;
use reflectub::{database, git, github};
+mod multi_error;
+use multi_error::MultiError;
+
use std::env;
-use std::fmt;
use std::fs;
use std::io;
use std::path::{Path, PathBuf};
@@ -47,39 +49,6 @@ fn main() {
};
}
-
-#[derive(Debug, thiserror::Error)]
-struct MultiError {
- errors: Vec<anyhow::Error>,
-}
-
-impl fmt::Display for MultiError {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- write!(
- f,
- "{}",
- self.errors
- .iter()
- .map(|e| format!("{:#}", e))
- .collect::<Vec<_>>()
- .join("\n"),
- )
- }
-}
-
-impl From<anyhow::Error> for MultiError {
- fn from(error: anyhow::Error) -> Self {
- MultiError { errors: vec![error] }
- }
-}
-
-impl From<Vec<anyhow::Error>> for MultiError {
- fn from(errors: Vec<anyhow::Error>) -> Self {
- MultiError { errors: errors }
- }
-}
-
-
fn print_usage(opts: &Options) {
print!(
"{}",
diff --git a/src/multi_error.rs b/src/multi_error.rs
new file mode 100644
index 0000000..efb4462
--- /dev/null
+++ b/src/multi_error.rs
@@ -0,0 +1,51 @@
+// Copyright (c) 2021 Teddy Wing
+//
+// This file is part of Reflectub.
+//
+// Reflectub is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Reflectub is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Reflectub. If not, see <https://www.gnu.org/licenses/>.
+
+
+use std::fmt;
+
+
+#[derive(Debug, thiserror::Error)]
+pub struct MultiError {
+ errors: Vec<anyhow::Error>,
+}
+
+impl fmt::Display for MultiError {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ write!(
+ f,
+ "{}",
+ self.errors
+ .iter()
+ .map(|e| format!("{:#}", e))
+ .collect::<Vec<_>>()
+ .join("\n"),
+ )
+ }
+}
+
+impl From<anyhow::Error> for MultiError {
+ fn from(error: anyhow::Error) -> Self {
+ MultiError { errors: vec![error] }
+ }
+}
+
+impl From<Vec<anyhow::Error>> for MultiError {
+ fn from(errors: Vec<anyhow::Error>) -> Self {
+ MultiError { errors: errors }
+ }
+}