mj 0.4.3

My Journal - personal tool to capture ideas, work with journals, notes and tasks in your favourite text $EDITOR.
Documentation
use std::convert::From;

#[derive(Debug)]
pub enum Error {
  InputOutput(std::io::Error),
  VaultNotFound,
  InvalidName,
  InvalidArguments(String),
}

impl std::fmt::Display for Error {
  fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
    match self {
      Error::InputOutput(err) => write!(f, "{}", err.to_string()),
      Error::VaultNotFound => write!(f, "Vault not found"),
      Error::InvalidName => write!(f, "Invalid name supplied"),
      Error::InvalidArguments(err_msg) => write!(f, "Invalid arguments: {}", err_msg),
    }
  }
}

impl std::error::Error for Error {}

impl From<std::io::Error> for Error {
  fn from(error: std::io::Error) -> Self {
    Error::InputOutput(error)
  }
}

impl From<clap::Error> for Error {
  fn from(error: clap::Error) -> Self {
    Error::InvalidArguments(error.message)
  }
}