reefdb/sql/statements/
mod.rs1use self::{
2 create::CreateStatement, delete::DeleteStatement, insert::InsertStatement,
3 select::SelectStatement, update::UpdateStatement,
4};
5
6use nom::{branch::alt, character::complete::multispace0, sequence::preceded, IResult};
7
8
9pub mod create;
10pub mod delete;
11pub mod insert;
12pub mod select;
13pub mod update;
14
15#[derive(Debug, PartialEq)]
16pub enum Statement {
17 Create(CreateStatement),
18 Insert(InsertStatement),
19 Select(SelectStatement),
20 Update(UpdateStatement),
21 Delete(DeleteStatement),
22}
23
24impl Statement {
25 pub fn parse(input: &str) -> IResult<&str, Statement> {
26 preceded(
27 multispace0,
28 alt((
29 CreateStatement::parse,
30 InsertStatement::parse,
31 SelectStatement::parse,
32 UpdateStatement::parse,
33 DeleteStatement::parse,
34 )),
35 )(input)
36 }
37}