Defconst v0.1.0 Defconst View Source
Define constants and enum with use in guards
Define a contant
defmodule ConstType do
use Defconst
defconst :one, 1
defconst :two, 2
end
Define an enum with default values
defmodule EnumType1 do
use Defconst
defenum [
:zero,
:one,
:two
]
end
Define an enum with explicit values
defmodule EnumType2 do
use Defconst
defenum [
{:one, 1},
{:nine, 9},
:ten
]
end
Link to this section Summary
Functions
Define constant
Link to this section Functions
Define constant
Examples:
iex> defmodule ConstType do …> use Defconst …> …> defconst :one, 1 …> defconst :two, 2 …> end iex> defmodule ConstUse do …> require ConstType …> …> def constvalue(x) do …> case x do …> ConstType.one -> “one” …> ConstType.two -> “two” …> -> “unknown” …> end …> end …> …> def const_guard(x) when x == ConstType.two do …> “two” …> end …> end iex> ConstUse.const_value(1) “one” iex> ConstUse.const_guard(2) “two”
Define enum
Examples:
iex> defmodule EnumType1 do …> use Defconst …> …> defenum [ …> :zero, …> :one, …> :two …> ] …> end iex> defmodule EnumUse1 do …> require EnumType1 …> …> def enumvalue(x) do …> case x do …> EnumType1.zero -> “zero” …> EnumType1.one -> “one” …> EnumType1.two -> “two” …> -> “unknown” …> end …> end …> …> def enum_guard(x) when x == EnumType1.two do …> “two” …> end …> end iex> EnumUse1.enum_value(1) “one” iex> EnumUse1.enum_guard(2) “two”
iex> defmodule EnumType2 do …> use Defconst …> …> defenum [ …> {:zero, “zero”}, …> {:one, 1}, …> {:nine, 9}, …> :ten …> ] …> end iex> defmodule EnumUse2 do …> require EnumType2 …> …> def enumvalue(x) do …> case x do …> EnumType2.zero -> “zero” …> EnumType2.one -> “one” …> EnumType2.nine -> “nine” …> EnumType2.ten -> “ten” …> -> “unknown” …> end …> end …> …> def enum_guard(x) when x == EnumType2.ten do …> “ten” …> end …> end iex> EnumUse2.enum_value(1) “one” iex> EnumUse2.enum_guard(10) “ten”