todors 0.10.7

todo app with CLI, REST & gRPC interfaces
use crate::db::Error as DbError;
use crate::serializers::Error as SerializerError;
use std::io::Error as IoError;
use thiserror::Error as ThisError;

#[derive(Debug, ThisError)]
pub enum TodoErrors {
    #[error("database error")]
    DatabaseError(#[from] DbError),

    #[error("no todo found")]
    TodoNotFound,

    #[error("serializer error")]
    SerializerError(#[from] SerializerError),

    #[error("io error")]
    IoError(#[from] IoError),

    #[error("batch too large, max batch size is {max_size}")]
    BatchTooLarge { max_size: u32 },

    #[error("internal error")]
    InternalError,

    #[error("title already exists")]
    TitleAlreadyExists,
}