Current section
Files
Jump to
Current section
Files
lib/parsers/boolean.ex
defmodule Saxon.Parsers.BOOLEAN do
defstruct buffer: [], attributes: %{}
def new(attributes \\ %{}), do: %__MODULE__{attributes: attributes}
def update(%__MODULE__{buffer: buffer} = parser, chunk) do
%{parser | buffer: [buffer, chunk]}
end
def parse(%__MODULE__{buffer: buffer, attributes: attributes}) do
buffer = buffer |> IO.iodata_to_binary() |> String.trim()
case buffer do
"true" -> {:ok, true, attributes}
"false" -> {:ok, false, attributes}
"" -> {:ok, nil, attributes}
_ -> {:error, :invalid_format, buffer}
end
end
end