poa-netstats-agent/lib/poa_agent/format.ex

39 lines
814 B
Elixir

defmodule POAAgent.Format do
@moduledoc false
defmodule Literal do
@moduledoc false
defmodule Hex do
@moduledoc false
## A literal hex string like "0x0123456789abcdef"
@type t :: String.t
@spec decimalize(t) :: String.t | :format_error
def decimalize("0x" <> trimmed_hex) do
{integer, _} = Integer.parse(trimmed_hex, 16)
Integer.to_string(integer)
end
def decimalize(_) do
:format_error
end
end
defmodule TrimmedHex do
@moduledoc false
## A literal hex string like "0123456789abcdef" w/o the leading
## "0x" indicator
@type t :: String.t
end
defmodule Decimal do
@moduledoc false
## A literal decimal string like "0123456789"
@type t :: String.t
end
end
end