kali 0.1.0

A query builder and orm-ish crate built on sqlx
Documentation
use crate::column::Column;

pub enum ColumnOrdering<T: Column> {
    Asc(T),
    Desc(T),
    AscNullsFirst(T),
    AscNullsLast(T),
    DescNullsFirst(T),
    DescNullsLast(T),
}

impl<T: Column> ColumnOrdering<T> {
    pub fn write(&self, f: &mut String) {
        match self {
            ColumnOrdering::Asc(column) => {
                column.write(f);
                f.push_str(" ASC");
            }
            ColumnOrdering::Desc(column) => {
                column.write(f);
                f.push_str(" DESC");
            }
            ColumnOrdering::AscNullsFirst(column) => {
                column.write(f);
                f.push_str(" ASC NULLS FIRST");
            }
            ColumnOrdering::AscNullsLast(column) => {
                column.write(f);
                f.push_str(" ASC NULLS LAST");
            }
            ColumnOrdering::DescNullsFirst(column) => {
                column.write(f);
                f.push_str(" DESC NULLS FIRST");
            }
            ColumnOrdering::DescNullsLast(column) => {
                column.write(f);
                f.push_str(" DESC NULLS LAST");
            }
        }
    }
}