use super::{Expr, Node};
#[derive(Debug)]
pub struct OrderBy<'s, ID> {
pub order_token: Node<(), ID>,
pub siblings_token: Option<Node<(), ID>>,
pub by_token: Node<(), ID>,
pub expressions: Vec<OrderExpr<'s, ID>>,
}
#[derive(Debug)]
pub struct OrderExpr<'s, ID> {
pub expr: Expr<'s, ID>,
pub direction: Option<Node<OrderDirection, ID>>,
pub nulls: Option<OrderNulls<ID>>,
}
#[derive(Debug)]
pub enum OrderDirection {
Asc,
Desc,
}
#[derive(Debug)]
pub struct OrderNulls<ID> {
pub nulls_token: Node<(), ID>,
pub position: Node<OrderNullsPosition, ID>,
}
#[derive(Debug)]
pub enum OrderNullsPosition {
First,
Last,
}