[−][src]Crate graphql_parser
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 graphql_parser::query::{parse_query, ParseError}; let ast = parse_query::<&str>("query MyQuery { field1, field2 }")?; // Format canonical representation assert_eq!(format!("{}", ast), "\ query MyQuery { field1 field2 } ");
Example: Parse and Format Schema
use graphql_parser::schema::{parse_schema, ParseError}; let ast = parse_schema::<String>(r#" schema { query: Query } type Query { users: [User!]!, } """ Example user object This is just a demo comment. """ type User { name: String!, } "#)?.to_owned(); // 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 |