reefdb 0.1.0

ReefDB is a minimalistic, in-memory and on-disk database management system written in Rust, implementing basic SQL query capabilities and full-text search.
Documentation
use self::{
    create::CreateStatement, delete::DeleteStatement, insert::InsertStatement,
    select::SelectStatement, update::UpdateStatement,
};

use nom::{branch::alt, character::complete::multispace0, sequence::preceded, IResult};


pub mod create;
pub mod delete;
pub mod insert;
pub mod select;
pub mod update;

#[derive(Debug, PartialEq)]
pub enum Statement {
    Create(CreateStatement),
    Insert(InsertStatement),
    Select(SelectStatement),
    Update(UpdateStatement),
    Delete(DeleteStatement),
}

impl Statement {
    pub fn parse(input: &str) -> IResult<&str, Statement> {
        preceded(
            multispace0,
            alt((
                CreateStatement::parse,
                InsertStatement::parse,
                SelectStatement::parse,
                UpdateStatement::parse,
                DeleteStatement::parse,
            )),
        )(input)
    }
}