summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs57
1 files changed, 3 insertions, 54 deletions
diff --git a/src/lib.rs b/src/lib.rs
index dd255d9..f2babce 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -72,6 +72,8 @@
//! [`show`]: trait.DialogBox.html#method.show
//! [`show_with`]: trait.DialogBox.html#method.show_with
+mod error;
+
/// Backends that display dialog boxes.
///
/// All backends implement the [`Backend`][] trait. Some backends might provide additional
@@ -81,60 +83,7 @@
/// [`Backend`]: trait.Backend.html
pub mod backends;
-use std::io;
-use std::process;
-use std::result;
-use std::str;
-use std::string;
-
-/// A result returned by `dialog`.
-pub type Result<T> = result::Result<T, Error>;
-
-/// An error returned by `dialog`.
-#[derive(Debug)]
-pub enum Error {
- /// A general error with an error message.
- Error(String),
- /// An input or output error.
- IoError(io::Error),
- /// An UTF-8 error.
- Utf8Error(str::Utf8Error),
-}
-
-impl From<&str> for Error {
- fn from(string: &str) -> Error {
- Error::Error(string.to_string())
- }
-}
-
-impl From<io::Error> for Error {
- fn from(error: io::Error) -> Error {
- Error::IoError(error)
- }
-}
-
-impl From<str::Utf8Error> for Error {
- fn from(error: str::Utf8Error) -> Error {
- Error::Utf8Error(error)
- }
-}
-
-impl From<string::FromUtf8Error> for Error {
- fn from(error: string::FromUtf8Error) -> Error {
- Error::Utf8Error(error.utf8_error())
- }
-}
-
-impl From<(&str, process::ExitStatus)> for Error {
- fn from(data: (&str, process::ExitStatus)) -> Error {
- let (command, status) = data;
- let msg = match status.code() {
- Some(code) => format!("Command {} failed with exit status {}", command, code),
- None => format!("Command {} was terminated by a signal", command),
- };
- Error::Error(msg)
- }
-}
+pub use crate::error::{Error, Result};
/// A dialog box that can be shown using a backend.
///