tagged v0.2.0 Tagged.Typedef View Source

Generates type definitions for tagged value tuples.

This module is executed by default, but can be disabled for a whole module with keyword argument types: false to use/2, or for a single definition with keyword argument type: false to deftagged/2.

Examples

  • Disable type declaration for all tagged value tuple definitions

    defmodule NoTypes do
      use Tagged, types: false
    
      deftagged foo
    end
    
    _iex> use NoTypes
    _iex> t NoTypes.foo
    No type information for NoTypes.foo was found or NoTypes.foo is private
  • Override type declaration for a single tagged value tuple definition

    defmodule SomeTypes do
      use Tagged
    
      deftagged foo, type: false
      deftagged bar
    end
    
    _iex> use Types
    _iex> t NoTypes.foo
    No type information for NoTypes.foo was found or NoTypes.foo is private
    _iex> t NoTypes.bar
    @type bar() :: bar(term())
    
    @type bar(t) :: {:bar, value :: t}
    
    Tagged value tuple with a wrapped type t() \\ term()