gluesql_core/ast_builder/
column_def.rs1use 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}