X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fflake_id.ex;h=9f098ce3378f0ce5deeb2ea2bb03e9804e56f80d;hb=dca6bee2f7eba1dc366cc65d3087f20678549739;hp=3623ac597255a1c8d1ceead66f04e0eeca2f5827;hpb=e0e0cc5ab044b64b83abf6382780ff1342025a43;p=akkoma diff --git a/lib/pleroma/flake_id.ex b/lib/pleroma/flake_id.ex index 3623ac597..9f098ce33 100644 --- a/lib/pleroma/flake_id.ex +++ b/lib/pleroma/flake_id.ex @@ -27,18 +27,22 @@ defmodule Pleroma.FlakeId do Kernel.to_string(id) end - def to_string(flake = <<_::integer-size(64), _::integer-size(48), _::integer-size(16)>>) do + def to_string(<<_::integer-size(64), _::integer-size(48), _::integer-size(16)>> = flake) do encode_base62(flake) end def to_string(s), do: s + def from_string(int) when is_integer(int) do + from_string(Kernel.to_string(int)) + end + for i <- [-1, 0] do def from_string(unquote(i)), do: <<0::integer-size(128)>> def from_string(unquote(Kernel.to_string(i))), do: <<0::integer-size(128)>> end - def from_string(flake = <<_::integer-size(128)>>), do: flake + def from_string(<<_::integer-size(128)>> = flake), do: flake def from_string(string) when is_binary(string) and byte_size(string) < 18 do case Integer.parse(string) do