Appwrite.Consts.Behaviour behaviour (appwrite v1.0.0)

View Source

Behaviour that every Appwrite constant/enum module implements.

Using this behaviour gives you a consistent API across all enum modules and lets callers write generic code against any of them:

def validate(module, value), do: module.validate(value)

Implementing

defmodule Appwrite.Consts.MyEnum do
  use Appwrite.Consts.Behaviour, values: ~w(foo bar baz), name: "my enum"
end

Summary

Callbacks

valid?(t)

@callback valid?(String.t()) :: boolean()

validate(t)

@callback validate(String.t()) :: {:ok, String.t()} | {:error, String.t()}

validate!(t)

@callback validate!(String.t()) :: String.t()

values()

@callback values() :: [String.t()]