lib/kvasir/key/email.ex
defmodule Kvasir.Key.Email do
@moduledoc ~S"""
Email key applies the same partitioning logic as strings.
"""
use Kvasir.Key, type: Kvasir.Type.Email
@impl Kvasir.Key
def partition(value, partitions),
do: {:ok, value |> String.to_charlist() |> Enum.sum() |> rem(partitions)}
end