surrealdb-sql 1.1.0

Full type definitions for the SurrealQL query language
Documentation
use super::super::{comment::shouldbespace, IResult};
use crate::statements::DefineStatement;
use nom::{branch::alt, bytes::complete::tag_no_case, combinator::map};

mod analyzer;
mod database;
mod event;
mod field;
mod function;
mod index;
mod namespace;
mod param;
mod scope;
mod table;
mod token;
mod user;

pub fn define(i: &str) -> IResult<&str, DefineStatement> {
	let (i, _) = tag_no_case("DEFINE")(i)?;
	let (i, _) = shouldbespace(i)?;
	alt((
		map(namespace::namespace, DefineStatement::Namespace),
		map(database::database, DefineStatement::Database),
		map(function::function, DefineStatement::Function),
		map(user::user, DefineStatement::User),
		map(token::token, DefineStatement::Token),
		map(scope::scope, DefineStatement::Scope),
		map(param::param, DefineStatement::Param),
		map(table::table, DefineStatement::Table),
		map(event::event, DefineStatement::Event),
		map(field::field, DefineStatement::Field),
		map(index::index, DefineStatement::Index),
		map(analyzer::analyzer, DefineStatement::Analyzer),
	))(i)
}