decode(binary(), opts :: any()) :: {any(), binary()}
encode(any(), opts :: any()) :: binary()
range(any(), opts :: any()) :: {binary(), :complete | :partial}