From 3b55e4a839f0b834146e7f86cb5b6b4378d1e59c Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 13 Jun 2021 13:43:03 +0200 Subject: Move `MultiError` to its own file --- src/main.rs | 37 +++---------------------------------- src/multi_error.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 34 deletions(-) create mode 100644 src/multi_error.rs (limited to 'src') 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, -} - -impl fmt::Display for MultiError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!( - f, - "{}", - self.errors - .iter() - .map(|e| format!("{:#}", e)) - .collect::>() - .join("\n"), - ) - } -} - -impl From for MultiError { - fn from(error: anyhow::Error) -> Self { - MultiError { errors: vec![error] } - } -} - -impl From> for MultiError { - fn from(errors: Vec) -> 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 . + + +use std::fmt; + + +#[derive(Debug, thiserror::Error)] +pub struct MultiError { + errors: Vec, +} + +impl fmt::Display for MultiError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "{}", + self.errors + .iter() + .map(|e| format!("{:#}", e)) + .collect::>() + .join("\n"), + ) + } +} + +impl From for MultiError { + fn from(error: anyhow::Error) -> Self { + MultiError { errors: vec![error] } + } +} + +impl From> for MultiError { + fn from(errors: Vec) -> Self { + MultiError { errors: errors } + } +} -- cgit v1.2.3