use-sql 0.1.0

Feature-gated facade crate for RustUse SQL primitives
Documentation
use use_sql::column::{SqlColumnName, SqlColumnRef};
use use_sql::constraint::SqlConstraintKind;
use use_sql::dialect::SqlDialect;
use use_sql::ident::{SqlIdentifier, needs_quoting};
use use_sql::param::SqlParameter;
use use_sql::query::SqlQueryKind;
use use_sql::table::{SqlTableName, SqlTableRef};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ident = SqlIdentifier::new("users")?;
    let table = SqlTableRef::new(SqlTableName::new("users")?);
    let column = SqlColumnRef::qualified(SqlTableName::new("users")?, SqlColumnName::new("id")?);
    let postgres_param: SqlParameter = "$1".parse()?;
    let positional_param: SqlParameter = "?".parse()?;
    let kind = SqlQueryKind::Select;
    let constraint = SqlConstraintKind::PrimaryKey;
    let dialect: SqlDialect = "postgres".parse()?;

    assert_eq!(ident.as_str(), "users");
    assert!(needs_quoting("select"));
    assert_eq!(table.to_string(), "users");
    assert_eq!(column.to_string(), "users.id");
    assert_eq!(postgres_param.to_string(), "$1");
    assert_eq!(positional_param.to_string(), "?");
    assert!(kind.is_read());
    assert_eq!(constraint.to_string(), "PRIMARY KEY");
    assert_eq!(dialect, SqlDialect::PostgreSql);

    Ok(())
}