View Source argo_graphql_interface_type_definition (argo v1.0.8)

Summary

Types

-type shape() :: #{argo_types:name() => argo_graphql_type:t(), type := interface}.
-type t() ::
    #argo_graphql_interface_type_definition{implements :: argo_index_set:t(argo_types:name()),
                                            fields ::
                                                argo_index_map:t(argo_types:name(),
                                                                 argo_graphql_field_definition:t())}.

Functions

Link to this function

add_field_definition(InterfaceTypeDefinition, FieldDefinition)

View Source
-spec add_field_definition(InterfaceTypeDefinition, FieldDefinition) -> InterfaceTypeDefinition
                        when
                            InterfaceTypeDefinition :: t(),
                            FieldDefinition :: argo_graphql_field_definition:t().
Link to this function

add_interface(InterfaceTypeDefinition, InterfaceName)

View Source
-spec add_interface(InterfaceTypeDefinition, InterfaceName) -> InterfaceTypeDefinition
                 when InterfaceTypeDefinition :: t(), InterfaceName :: argo_types:name().
Link to this function

format(Formatter1, Type)

View Source
-spec format(Formatter1, Type :: t()) -> Formatter2
          when Formatter1 :: argo_graphql_formatter:t(), Formatter2 :: argo_graphql_formatter:t().
-spec format_error(dynamic(), dynamic()) -> dynamic().
Link to this function

from_language(LanguageInterfaceTypeDefinition)

View Source
-spec from_language(LanguageInterfaceTypeDefinition) -> InterfaceTypeDefinition
                 when
                     LanguageInterfaceTypeDefinition ::
                         argo_graphql_language_interface_type_definition:t(),
                     InterfaceTypeDefinition :: t().
Link to this function

get_implements_interfaces(InterfaceTypeDefinition, ServiceDocument)

View Source
-spec get_implements_interfaces(InterfaceTypeDefinition, ServiceDocument) -> ImplementsInterfaces
                             when
                                 InterfaceTypeDefinition :: t(),
                                 ServiceDocument :: argo_graphql_service_document:t(),
                                 ImplementsInterfaces :: [argo_types:name()].
Link to this function

get_shape(InterfaceTypeDefinition)

View Source
-spec get_shape(InterfaceTypeDefinition) -> InterfaceShape
             when InterfaceTypeDefinition :: t(), InterfaceShape :: shape().
Link to this function

get_shape(InterfaceTypeDefinition, ServiceDocument)

View Source
-spec get_shape(InterfaceTypeDefinition, ServiceDocument) -> InterfaceShape
             when
                 InterfaceTypeDefinition :: t(),
                 ServiceDocument :: argo_graphql_service_document:t(),
                 InterfaceShape :: shape().
Link to this function

is_ambiguous(Definition)

View Source
-spec is_ambiguous(Definition) -> boolean() when Definition :: t().
Schema extensions without additional operation type definitions must not be followed by a { (such as a query shorthand) to avoid parsing ambiguity. The same limitation applies to the type definitions and extensions below.
-spec new() -> InterfaceTypeDefinition when InterfaceTypeDefinition :: t().