1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! `graphql_query`
//! =========
//!
//! _Stupendously fast and easy GraphQL Query Language handling._
//!
//! The **`graphql_query`** library follows two goals:
//!
//! - To support a pleasant-to-use API for the GraphQL Query Language
//! - To be stupendously fast at processing GraphQL Query Language ASTs
//!
//! In short, _surprise!_ The `graphql_query` crate while handling a part of GraphQL does
//! not aim to support full, server-side GraphQL execution or the GraphQL Schema Language.
//! Many parts of the server-side execution of requests are one-off operations. Parsing a schema
//! and using it are operations that could even be preprocessed using the reference GraphQL.js
//! implementation.
//!
//! A harder focus is to optimize how individual GraphQL requests are handled and making it easier
//! to write complex code on top of an easy to use AST.
//! GraphQL throughput is highly important in ensuring that GraphQL doesn't fall behind any other
//! solutions, which don't feature a rich query language.
//! On top, having an AST and library that's sufficiently easy to use and contains enough primitives
//! and utilities at the same time as valuing performance is something that's harder to do when
//! focusing on building a full GraphQL server.
//!
//! As such, this library focuses on just processing GraphQL queries for the purpose of
//! intermediary GraphQL layers, which operate inbetween GraphQL clients and GraphQL servers.
//!
//! [A good place to start learning more about this crate is the `ast` module...](ast)
pub use bumpalo;
use DefaultHashBuilder;
pub type ArenaVec<'arena, T> = Vec;
pub type ArenaHashMap<'arena, K, V> = HashMap;