Packages

Data specification library inspired by clojure.spec

Current section

Files

Jump to
vow lib vow generatable.ex
Raw

lib/vow/generatable.ex

defprotocol Vow.Generatable do
@moduledoc """
TODO
"""
@fallback_to_any true
if Code.ensure_loaded?(StreamData) do
@type generator :: StreamData.t(term)
else
@type generator :: term
end
@doc """
"""
@spec gen(t, [{[atom], (() -> generator)}]) :: {:ok, generator} | {:error, reason :: term}
def gen(spec, overrides \\ [])
end
defimpl Vow.Generatable, for: Any do
@moduledoc false
def gen(_spec, _overrides) do
{:error, :not_implemented}
end
end