use super::map_util::{BindArgs, ToSqlParts};
use crate::request_context::ContextAccessor;
use std::fmt::{Debug, Display};
pub trait Context: ContextAccessor + Unpin + Send + Sync {}
impl<C> Context for C where C: ContextAccessor + Unpin + Send + Sync {}
pub trait ToInsertRow: ToSqlParts + BindArgs + Debug {}
impl<I> ToInsertRow for I where I: ToSqlParts + BindArgs + Debug {}
pub trait ToUpdateRow: ToSqlParts + BindArgs + Debug {}
impl<U> ToUpdateRow for U where U: ToSqlParts + BindArgs + Debug {}
pub trait ToPatch: ToSqlParts + BindArgs + Debug {}
impl<P> ToPatch for P where P: ToSqlParts + BindArgs + Debug {}
pub trait ToField: ToSqlParts + Display {}
impl<F> ToField for F where F: ToSqlParts + Display {}
pub trait QueryAs: for<'r> sqlx::FromRow<'r, sqlx::postgres::PgRow> + Unpin + Send {}
impl<A> QueryAs for A where A: for<'r> sqlx::FromRow<'r, sqlx::postgres::PgRow> + Unpin + Send {}