1#[allow(dead_code)]
2pub mod operation {
3 pub type Definition = graphql_parser::query::Definition<'static, String>;
4 pub type Directive = graphql_parser::query::Directive<'static, String>;
5 pub type Document = graphql_parser::query::Document<'static, String>;
6 pub type Field = graphql_parser::query::Field<'static, String>;
7 pub type FragmentDefinition = graphql_parser::query::FragmentDefinition<'static, String>;
8 pub type FragmentSpread = graphql_parser::query::FragmentSpread<'static, String>;
9 pub type InlineFragment = graphql_parser::query::InlineFragment<'static, String>;
10 pub type Mutation = graphql_parser::query::Mutation<'static, String>;
11 pub type OperationDefinition = graphql_parser::query::OperationDefinition<'static, String>;
12 pub type Query = graphql_parser::query::Query<'static, String>;
13 pub type Selection = graphql_parser::query::Selection<'static, String>;
14 pub type SelectionSet = graphql_parser::query::SelectionSet<'static, String>;
15 pub type Subscription = graphql_parser::query::Subscription<'static, String>;
16 pub type Type = graphql_parser::query::Type<'static, String>;
17 pub type TypeCondition = graphql_parser::query::TypeCondition<'static, String>;
18 pub type VariableDefinition = graphql_parser::query::VariableDefinition<'static, String>;
19
20 pub type ParseError = graphql_parser::query::ParseError;
21 pub fn parse(query_src: &str) -> Result<Document, ParseError> {
22 Ok(graphql_parser::query::parse_query::<String>(query_src)?.into_static())
23 }
24}
25
26#[allow(dead_code)]
27pub mod schema {
28 pub type Definition = graphql_parser::schema::Definition<'static, String>;
29 pub type Directive = graphql_parser::query::Directive<'static, String>;
30 pub type DirectiveDefinition = graphql_parser::schema::DirectiveDefinition<'static, String>;
31 pub type DirectiveLocation = graphql_parser::schema::DirectiveLocation;
32 pub type Document = graphql_parser::schema::Document<'static, String>;
33 pub type EnumType = graphql_parser::schema::EnumType<'static, String>;
34 pub type EnumTypeExtension = graphql_parser::schema::EnumTypeExtension<'static, String>;
35 pub type EnumValue = graphql_parser::schema::EnumValue<'static, String>;
36 pub type Field = graphql_parser::schema::Field<'static, String>;
37 pub type InputObjectType = graphql_parser::schema::InputObjectType<'static, String>;
38 pub type InputObjectTypeExtension =
39 graphql_parser::schema::InputObjectTypeExtension<'static, String>;
40 pub type InputValue = graphql_parser::schema::InputValue<'static, String>;
41 pub type InterfaceType = graphql_parser::schema::InterfaceType<'static, String>;
42 pub type InterfaceTypeExtension =
43 graphql_parser::schema::InterfaceTypeExtension<'static, String>;
44 pub type ObjectType = graphql_parser::schema::ObjectType<'static, String>;
45 pub type ObjectTypeExtension = graphql_parser::schema::ObjectTypeExtension<'static, String>;
46 pub type ScalarType = graphql_parser::schema::ScalarType<'static, String>;
47 pub type ScalarTypeExtension = graphql_parser::schema::ScalarTypeExtension<'static, String>;
48 pub type SchemaDefinition = graphql_parser::schema::SchemaDefinition<'static, String>;
49 pub type Type = graphql_parser::schema::Type<'static, String>;
50 pub type TypeDefinition = graphql_parser::schema::TypeDefinition<'static, String>;
51 pub type TypeExtension = graphql_parser::schema::TypeExtension<'static, String>;
52 pub type UnionType = graphql_parser::schema::UnionType<'static, String>;
53 pub type UnionTypeExtension = graphql_parser::schema::UnionTypeExtension<'static, String>;
54
55 pub type ParseError = graphql_parser::schema::ParseError;
56
57 pub fn parse(schema_src: &str) -> Result<Document, ParseError> {
58 Ok(graphql_parser::schema::parse_schema::<String>(schema_src)?.into_static())
59 }
60}
61
62pub type AstPos = graphql_parser::Pos;
63pub type Number = graphql_parser::query::Number;
64pub type Value = graphql_parser::query::Value<'static, String>;
65
66#[derive(Clone, Debug, PartialEq)]
78pub enum MixedDefinition {
79 Schema(schema::Definition),
81
82 Executable(operation::Definition),
84}
85
86#[derive(Clone, Debug, PartialEq)]
116pub struct MixedDocument {
117 pub definitions: Vec<MixedDefinition>,
119}
120
121pub mod serde_adapters {
122 #[derive(serde::Deserialize, serde::Serialize)]
123 #[serde(remote = "crate::ast::Number")]
124 pub struct SerdeNumber(#[serde(getter = "SerdeNumber::as_i32")] pub(crate) i32);
125
126 impl SerdeNumber {
127 fn as_i32(num: &crate::ast::Number) -> i32 {
128 num.as_i64().unwrap() as i32
129 }
130 }
131
132 impl std::convert::From<SerdeNumber> for crate::ast::Number {
133 fn from(value: SerdeNumber) -> Self {
134 value.0.into()
135 }
136 }
137}