degen-sql 0.2.4

A postgres database engine for rust that builds on top of tokio-postgres and deadpool
Documentation
 
use std::mem::discriminant;

use serde_json::Error as SerdeJsonError;
use tokio_postgres::Error as PostgresError;

pub trait Model {}

#[derive(Debug, thiserror::Error )]
pub enum PostgresModelError {
    #[error("Timeout")]
    Timeout,

    #[error(transparent)]
    Postgres(#[from] PostgresError),

     #[error("UnexpectedRowsCount")]
    UnexpectedRowsCount,

    #[error(transparent)]
    SerdeJson(#[from] SerdeJsonError),

    #[error("Error parsing row for database: {0:?}")]
    RowParseError(Option<String>),

    #[error("ConnectionFailed  ")]
     ConnectionFailed ,

      #[error("PoolCreationFailed {0:?}")]

    PoolCreationFailed(String),


     #[error("QueryFailed {0:?}")]
    QueryFailed(tokio_postgres::Error),

    
     #[error("PostgresError {0:?}")]
    PostgresError(tokio_postgres::Error),

         #[error("PoolError {0:?}")]
    PoolError(deadpool::managed::PoolError<tokio_postgres::Error>),


}

impl PartialEq for PostgresModelError {
    fn eq(&self, other: &Self) -> bool {
        discriminant(self) == discriminant(other)
    }
}

impl Eq for PostgresModelError {}
 

impl From<deadpool::managed::PoolError<tokio_postgres::Error>> for PostgresModelError {
    fn from(error: deadpool::managed::PoolError<tokio_postgres::Error>) -> Self {
        PostgresModelError::PoolError(error)
    }
}