39 lines
814 B
Elixir
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
|