Packages
rust_graphql_parser
0.1.0
GraphQL parser implemented as a nif in Rust using Rustler. Converts GraphQL documents to an Absinthe.Language representation.
Current section
Files
Jump to
Current section
Files
native/graphqlparser_native/src/lib.rs
use rustler::types::atom;
use rustler::{Atom, Error};
mod datatypes;
pub use datatypes::Document;
#[rustler::nif(schedule = "DirtyCpu")]
fn parse_query<'a>(doc: String) -> Result<(Atom, Document), Error> {
let ast = match graphql_parser::parse_query::<String>(doc.as_str()) {
Ok(ast) => Ok((atom::ok(), Document::new(ast))),
Err(e) => Err(Error::Term(Box::new(e.to_string()))),
};
return ast;
}
rustler::init!("Elixir.GraphQLParser.Native", [parse_query]);