spectra_type_info (spectra v0.7.0)
View SourceSummary
Types
-type type_info() :: #type_info{types :: #{spectra_type_info:type_key() => spectra:sp_type()}, records :: #{atom() => #sp_rec{name :: atom(), fields :: [#sp_rec_field{name :: atom(), binary_name :: binary(), type :: spectra:sp_type()}], arity :: pos_integer(), meta :: spectra:sp_type_meta()}}, functions :: #{spectra_type_info:function_key() => [#sp_function_spec{args :: [spectra:sp_type()], return :: spectra:sp_type(), meta :: spectra:sp_function_spec_meta()}]}}.
Functions
-spec add_function(type_info(), atom(), arity(), [spectra:sp_function_spec()]) -> type_info().
-spec add_record(type_info(), atom(), #sp_rec{name :: atom(), fields :: [#sp_rec_field{name :: atom(), binary_name :: binary(), type :: spectra:sp_type()}], arity :: pos_integer(), meta :: spectra:sp_type_meta()}) -> type_info().
-spec add_type(type_info(), atom(), arity(), spectra:sp_type()) -> type_info().
-spec find_function(type_info(), atom(), arity()) -> {ok, [spectra:sp_function_spec()]} | error.
-spec find_record(type_info(), atom()) -> {ok, #sp_rec{name :: atom(), fields :: [#sp_rec_field{name :: atom(), binary_name :: binary(), type :: spectra:sp_type()}], arity :: pos_integer(), meta :: spectra:sp_type_meta()}} | error.
-spec find_type(type_info(), atom(), arity()) -> {ok, spectra:sp_type()} | error.
-spec get_record(type_info(), atom()) -> #sp_rec{name :: atom(), fields :: [#sp_rec_field{name :: atom(), binary_name :: binary(), type :: spectra:sp_type()}], arity :: pos_integer(), meta :: spectra:sp_type_meta()}.
-spec get_type(type_info(), atom(), arity()) -> spectra:sp_type().
-spec new() -> type_info().