Crate gurkle_parser[−][src]
Graphql Parser
This library contains full parser and formatter of the graphql query language as well as AST types.
Current this library supports full graphql syntax, and the following extensions:
- Subscriptions
- Block (triple quoted) strings
- Schema definition language a/k/a IDL (which is still in RFC)
Example: Parse and Format Query
use gurkle_parser::query::{parse_query, ParseError}; let ast = parse_query("query MyQuery { field1, field2 }")?; // Format canonical representation assert_eq!(format!("{}", ast), "\ query MyQuery { field1 field2 } ");
Example: Parse and Format Schema
use gurkle_parser::schema::{parse_schema, ParseError}; let ast = parse_schema(r#" schema { query: Query } type Query { users: [User!]!, } """ Example user object This is just a demo comment. """ type User { name: String!, } "#)?; // Format canonical representation assert_eq!(format!("{}", ast), "\ schema { query: Query } type Query { users: [User!]! } \"\"\" Example user object This is just a demo comment. \"\"\" type User { name: String! } ");
Modules
query | Query language AST and parsing utilities |
schema | Schema definition language AST and utility |
Structs
Pos | Original position of element in source code |
Style | A configuration of formatting style |
Functions
parse_query | Parses a piece of query language and returns an AST |
parse_schema | Parses a piece of schema language and returns an AST |