surrealdb-sql 1.1.0

Full type definitions for the SurrealQL query language
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use super::super::{common::commas, IResult};
use crate::Tokenizer;
use nom::{branch::alt, bytes::complete::tag_no_case, combinator::value, multi::separated_list1};

pub fn tokenizer(i: &str) -> IResult<&str, Tokenizer> {
	let (i, t) = alt((
		value(Tokenizer::Blank, tag_no_case("BLANK")),
		value(Tokenizer::Camel, tag_no_case("CAMEL")),
		value(Tokenizer::Class, tag_no_case("CLASS")),
		value(Tokenizer::Punct, tag_no_case("PUNCT")),
	))(i)?;
	Ok((i, t))
}

pub fn tokenizers(i: &str) -> IResult<&str, Vec<Tokenizer>> {
	separated_list1(commas, tokenizer)(i)
}