Public helpers for lowering Elixir typespec forms into RustQ type metadata.
RustQ.Spec accepts both ordinary quoted typespec AST and Erlang/BEAM
abstract typespec forms returned by the standard library Code.Typespec fetch
helpers.
Summary
Functions
Builds type aliases from quoted or BEAM abstract type declarations.
Extracts aliases, function specs, and def argument names from a source path or quoted module AST.
Normalizes a quoted or BEAM abstract typespec form to quoted AST.
Lowers a typespec type form to RustQ.Meta.Type metadata.
Functions
Builds type aliases from quoted or BEAM abstract type declarations.
@spec declarations(Path.t() | Macro.t()) :: %{ aliases: %{optional({atom(), non_neg_integer()}) => RustQ.Meta.Type.t()}, specs: [{atom(), [Macro.t()]}], defs: %{optional(atom()) => [atom()]} }
Extracts aliases, function specs, and def argument names from a source path or quoted module AST.
Normalizes a quoted or BEAM abstract typespec form to quoted AST.
@spec type(term(), map()) :: RustQ.Meta.Type.t()
Lowers a typespec type form to RustQ.Meta.Type metadata.