aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/graphql-go/graphql/language/ast/types.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/graphql-go/graphql/language/ast/types.go')
-rw-r--r--vendor/github.com/graphql-go/graphql/language/ast/types.go106
1 files changed, 106 insertions, 0 deletions
diff --git a/vendor/github.com/graphql-go/graphql/language/ast/types.go b/vendor/github.com/graphql-go/graphql/language/ast/types.go
new file mode 100644
index 00000000..27f00997
--- /dev/null
+++ b/vendor/github.com/graphql-go/graphql/language/ast/types.go
@@ -0,0 +1,106 @@
+package ast
+
+import (
+ "github.com/graphql-go/graphql/language/kinds"
+)
+
+type Type interface {
+ GetKind() string
+ GetLoc() *Location
+ String() string
+}
+
+// Ensure that all value types implements Value interface
+var _ Type = (*Named)(nil)
+var _ Type = (*List)(nil)
+var _ Type = (*NonNull)(nil)
+
+// Named implements Node, Type
+type Named struct {
+ Kind string
+ Loc *Location
+ Name *Name
+}
+
+func NewNamed(t *Named) *Named {
+ if t == nil {
+ t = &Named{}
+ }
+ return &Named{
+ Kind: kinds.Named,
+ Loc: t.Loc,
+ Name: t.Name,
+ }
+}
+
+func (t *Named) GetKind() string {
+ return t.Kind
+}
+
+func (t *Named) GetLoc() *Location {
+ return t.Loc
+}
+
+func (t *Named) String() string {
+ return t.GetKind()
+}
+
+// List implements Node, Type
+type List struct {
+ Kind string
+ Loc *Location
+ Type Type
+}
+
+func NewList(t *List) *List {
+ if t == nil {
+ t = &List{}
+ }
+ return &List{
+ Kind: kinds.List,
+ Loc: t.Loc,
+ Type: t.Type,
+ }
+}
+
+func (t *List) GetKind() string {
+ return t.Kind
+}
+
+func (t *List) GetLoc() *Location {
+ return t.Loc
+}
+
+func (t *List) String() string {
+ return t.GetKind()
+}
+
+// NonNull implements Node, Type
+type NonNull struct {
+ Kind string
+ Loc *Location
+ Type Type
+}
+
+func NewNonNull(t *NonNull) *NonNull {
+ if t == nil {
+ t = &NonNull{}
+ }
+ return &NonNull{
+ Kind: kinds.NonNull,
+ Loc: t.Loc,
+ Type: t.Type,
+ }
+}
+
+func (t *NonNull) GetKind() string {
+ return t.Kind
+}
+
+func (t *NonNull) GetLoc() *Location {
+ return t.Loc
+}
+
+func (t *NonNull) String() string {
+ return t.GetKind()
+}