gluesql_core/ast_builder/
column_def.rs

1use crate::{
2    ast::ColumnDef,
3    parse_sql::parse_column_def,
4    result::{Error, Result},
5    translate::translate_column_def,
6};
7
8#[derive(Clone, Debug)]
9pub enum ColumnDefNode {
10    Text(String),
11}
12
13impl From<&str> for ColumnDefNode {
14    fn from(column_def: &str) -> Self {
15        ColumnDefNode::Text(column_def.to_owned())
16    }
17}
18
19impl TryFrom<ColumnDefNode> for ColumnDef {
20    type Error = Error;
21
22    fn try_from(column_def_node: ColumnDefNode) -> Result<ColumnDef> {
23        match column_def_node {
24            ColumnDefNode::Text(column_def) => parse_column_def(column_def)
25                .and_then(|column_def| translate_column_def(&column_def)),
26        }
27    }
28}