taitan-orm-parser 0.1.12

Next Generation ORM based on sqlx
Documentation
use proc_macro2::TokenStream;
use taitan_orm_parser::ToSqlSegment;
use taitan_orm_parser::{Atomic, Sign};
use taitan_orm_parser::{SimpleExpr, SqlPart, SqlTemplate, Variable, VariableChain};

use crate::setups::logger::setup_logger;

#[test]
fn template_parser_spec_001() {
    setup_logger();
    // let template = "select * from users";
    // let parsed_template = SqlTemplate::parse(template).unwrap();
    // let expected = SqlTemplate::new(vec![
    //     SqlPart::Expr(Expr::Simple(SimpleExpr::Single(Atomic::VariableChain(
    //         VariableChain::new(vec![Variable::Simple("select".to_string())]),
    //     )))),
    //     SqlPart::Expr(Expr::Simple(SimpleExpr::Single(Atomic::Sign(Sign::Star)))),
    //     SqlPart::Expr(Expr::Simple(SimpleExpr::Single(Atomic::VariableChain(
    //         VariableChain::new(vec![Variable::Simple("from".to_string())]),
    //     )))),
    //     SqlPart::Expr(Expr::Simple(SimpleExpr::Single(Atomic::VariableChain(
    //         VariableChain::new(vec![Variable::Simple("users".to_string())]),
    //     )))),
    // ]);
    //
    // assert_eq!(parsed_template, expected);

    // let segments = parsed_template.gen_sql_segments();
    // let streams: Vec<TokenStream> = segments.iter().map(|f| f.to_sql(false)).collect();
    // let streams_str: String = streams
    //     .iter()
    //     .map(|f| f.to_string())
    //     .collect::<Vec<_>>()
    //     .join(" ");
    // assert_eq!(streams_str, "s . push_str (\"select \") ; s . push_str (\"* \") ; s . push_str (\"from \") ; s . push_str (\"users \") ;");
}