ts_sqlx 0.1.3

Typescript SQLx compile-time checked queries without a DSL.
Documentation
use super::fake_sqlx as sqlx;

impl_database_ts! {
    sqlx::postgres::Postgres {
        () => crate::ts::TSFieldType::Null,
        bool => crate::ts::TSFieldType::Boolean,
        String => crate::ts::TSFieldType::String,
        i8 => crate::ts::TSFieldType::Number,
        i16 => crate::ts::TSFieldType::Number,
        i32 => crate::ts::TSFieldType::Number,
        i64 => crate::ts::TSFieldType::Number,
        f32 => crate::ts::TSFieldType::Number,
        f64 => crate::ts::TSFieldType::Number,
        Vec<u8> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),

        sqlx::postgres::types::Oid => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgInterval => crate::ts::TSFieldType::Object,

        sqlx::postgres::types::PgMoney => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgLTree => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgLQuery => crate::ts::TSFieldType::String,

        sqlx_core::types::Uuid => crate::ts::TSFieldType::String,

        sqlx_core::types::chrono::NaiveTime => crate::ts::TSFieldType::Date,

        sqlx_core::types::chrono::NaiveDate => crate::ts::TSFieldType::Date,

        sqlx_core::types::chrono::NaiveDateTime => crate::ts::TSFieldType::Date,

        sqlx_core::types::chrono::DateTime<sqlx_core::types::chrono::Utc> => crate::ts::TSFieldType::Date,

        sqlx::postgres::types::PgTimeTz<sqlx_core::types::chrono::NaiveTime, sqlx_core::types::chrono::FixedOffset> => crate::ts::TSFieldType::Date,

        sqlx_core::types::time::Time => crate::ts::TSFieldType::Date,

        sqlx_core::types::time::Date => crate::ts::TSFieldType::Date,

        sqlx_core::types::time::PrimitiveDateTime => crate::ts::TSFieldType::Date,

        sqlx_core::types::time::OffsetDateTime => crate::ts::TSFieldType::Date,

        sqlx::postgres::types::PgTimeTz<sqlx_core::types::time::Time, sqlx_core::types::time::UtcOffset> => crate::ts::TSFieldType::Date,

        sqlx_core::types::BigDecimal => crate::ts::TSFieldType::Number,

        sqlx_core::types::Decimal => crate::ts::TSFieldType::Number,

        sqlx_core::types::ipnetwork::IpNetwork => crate::ts::TSFieldType::String,

        sqlx_core::types::mac_address::MacAddress => crate::ts::TSFieldType::String,

        sqlx_core::types::JsonValue => crate::ts::TSFieldType::Object,

        sqlx_core::types::BitVec => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Boolean)),

        Vec<bool> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Boolean)),
        Vec<String> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),
        Vec<Vec<u8>> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<i8> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<i16> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<i32> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<i64> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<f32> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<f64> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),
        Vec<sqlx::postgres::types::Oid> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),
        Vec<sqlx::postgres::types::PgMoney> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),

        Vec<sqlx_core::types::Uuid> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),

        Vec<sqlx_core::types::chrono::NaiveTime> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::chrono::NaiveDate> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::chrono::NaiveDateTime> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::chrono::DateTime<sqlx_core::types::chrono::Utc>> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::time::Time> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::time::Date> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::time::PrimitiveDateTime> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::time::OffsetDateTime> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Date)),

        Vec<sqlx_core::types::BigDecimal> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),

        Vec<sqlx_core::types::Decimal> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Number)),

        Vec<sqlx_core::types::ipnetwork::IpNetwork> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),

        Vec<sqlx_core::types::mac_address::MacAddress> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::String)),

        Vec<sqlx_core::types::JsonValue> => crate::ts::TSFieldType::Array(Box::new(crate::ts::TSFieldType::Object)),

        sqlx::postgres::types::PgRange<i32> => crate::ts::TSFieldType::String,
        sqlx::postgres::types::PgRange<i64> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::BigDecimal> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::Decimal> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::chrono::NaiveDate> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::chrono::NaiveDateTime> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::chrono::DateTime<sqlx_core::types::chrono::Utc>> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::time::Date> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::time::PrimitiveDateTime> => crate::ts::TSFieldType::String,

        sqlx::postgres::types::PgRange<sqlx_core::types::time::OffsetDateTime> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<i32>> => crate::ts::TSFieldType::String,
        Vec<sqlx::postgres::types::PgRange<i64>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::BigDecimal>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::Decimal>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::chrono::NaiveDate>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::chrono::NaiveDateTime>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::chrono::DateTime<sqlx_core::types::chrono::Utc>>> => crate::ts::TSFieldType::String,

        &[sqlx::postgres::types::PgRange<sqlx_core::types::chrono::DateTime<sqlx_core::types::chrono::Utc>>] => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::time::Date>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::time::PrimitiveDateTime>> => crate::ts::TSFieldType::String,

        Vec<sqlx::postgres::types::PgRange<sqlx_core::types::time::OffsetDateTime>> => crate::ts::TSFieldType::String
    }
}