type_kind.ex (630B)
1 defmodule Absinthe.Introspection.TypeKind do 2 @moduledoc false 3 4 # https://spec.graphql.org/draft/#sec-Type-Kinds 5 6 defmacro __using__(kind) do 7 quote do 8 @behaviour unquote(__MODULE__) 9 def kind, do: unquote(kind) 10 end 11 end 12 13 @type type_kind :: 14 :scalar 15 | :object 16 | :interface 17 | :union 18 | :enum 19 | :input_object 20 | :list 21 | :non_null 22 23 @callback kind() :: type_kind() 24 25 def values do 26 [ 27 :scalar, 28 :object, 29 :interface, 30 :union, 31 :enum, 32 :input_object, 33 :list, 34 :non_null 35 ] 36 end 37 end