graphql_query/ast/
ast_kind.rs

1use std::fmt;
2
3/// An enum of identifiers representing AST nodes.
4///
5/// This enum can be printed using the [`fmt::Display`] trait.
6/// When parsing this enum is used to indicate what AST node encountered a parsing error.
7pub enum ASTKind {
8    /// See: [crate::ast::Definition]
9    Definition,
10    /// See: [crate::ast::Document]
11    Document,
12    /// See: [crate::ast::OperationDefinition]
13    OperationDefinition,
14    /// See: [crate::ast::OperationKind]
15    OperationKind,
16    /// See: [crate::ast::FragmentDefinition]
17    FragmentDefinition,
18    /// See: [crate::ast::VariableDefinitions]
19    VariableDefinitions,
20    /// See: [crate::ast::VariableDefinition]
21    VariableDefinition,
22    /// See: [crate::ast::Type]
23    Type,
24    /// See: [crate::ast::NamedType]
25    NamedType,
26    /// See: `ListType` on [crate::ast::Type]
27    ListType,
28    /// See: `NonNullType` on [crate::ast::Type]
29    NonNullType,
30    /// See: [crate::ast::Field]
31    Field,
32    /// See: [crate::ast::FragmentSpread]
33    FragmentSpread,
34    /// See: [crate::ast::InlineFragment]
35    InlineFragment,
36    /// See: [crate::ast::SelectionSet]
37    SelectionSet,
38    /// See: [crate::ast::Selection]
39    Selection,
40    /// See: [crate::ast::Directives]
41    Directives,
42    /// See: [crate::ast::Directive]
43    Directive,
44    /// See: [crate::ast::Arguments]
45    Arguments,
46    /// See: [crate::ast::Argument]
47    Argument,
48    /// See: [crate::ast::ObjectValue]
49    Object,
50    /// See: [crate::ast::ObjectField]
51    ObjectField,
52    /// See: [crate::ast::Value]
53    Value,
54    /// See: [crate::ast::Variable]
55    Variable,
56    /// See: [crate::ast::StringValue]
57    String,
58    /// See: [crate::ast::FloatValue]
59    Float,
60    /// See: [crate::ast::IntValue]
61    Int,
62    /// See: [crate::ast::BooleanValue]
63    Boolean,
64    /// See: [crate::ast::EnumValue]
65    Enum,
66    /// See: [crate::ast::ListValue]
67    List,
68}
69
70impl fmt::Display for ASTKind {
71    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
72        match self {
73            ASTKind::Definition => f.write_str("Definition"),
74            ASTKind::Document => f.write_str("Document"),
75            ASTKind::OperationDefinition => f.write_str("Operation Definition"),
76            ASTKind::OperationKind => f.write_str("Operation Kind"),
77            ASTKind::FragmentDefinition => f.write_str("Fragment Definition"),
78            ASTKind::VariableDefinitions => f.write_str("Variable Definitions"),
79            ASTKind::VariableDefinition => f.write_str("Variable Definition"),
80            ASTKind::Type => f.write_str("Type"),
81            ASTKind::NamedType => f.write_str("Type Name"),
82            ASTKind::ListType => f.write_str("List Type"),
83            ASTKind::NonNullType => f.write_str("Non-null Type"),
84            ASTKind::Field => f.write_str("Field"),
85            ASTKind::FragmentSpread => f.write_str("Fragment Spread"),
86            ASTKind::InlineFragment => f.write_str("Inline Fragment"),
87            ASTKind::SelectionSet => f.write_str("Selection Set"),
88            ASTKind::Selection => f.write_str("Selection"),
89            ASTKind::Directives => f.write_str("Directives"),
90            ASTKind::Directive => f.write_str("Directive"),
91            ASTKind::Arguments => f.write_str("Arguments"),
92            ASTKind::Argument => f.write_str("Argument"),
93            ASTKind::Object => f.write_str("Object"),
94            ASTKind::ObjectField => f.write_str("Object Field"),
95            ASTKind::Value => f.write_str("Value"),
96            ASTKind::Variable => f.write_str("Variable"),
97            ASTKind::String => f.write_str("String"),
98            ASTKind::Float => f.write_str("Float"),
99            ASTKind::Int => f.write_str("Integer"),
100            ASTKind::Boolean => f.write_str("Boolean"),
101            ASTKind::Enum => f.write_str("Enum"),
102            ASTKind::List => f.write_str("List"),
103        }
104    }
105}