lib/kvasir/key/string.ex
defmodule Kvasir.Key.String do
@moduledoc ~S"""
String key is partitioned by summing the character values
and modulo-ing them with the partitions.
"""
use Kvasir.Key, type: Kvasir.Type.String
@impl Kvasir.Key
def partition(value, partitions),
do: {:ok, value |> String.to_charlist() |> Enum.sum() |> rem(partitions)}
end