Packages

A plug for hierarchical data submit with arbitrary number of files embedded in.

Current section

Files

Jump to
saxon lib parsers timestamp.ex
Raw

lib/parsers/timestamp.ex

defmodule Saxon.Parsers.TIMESTAMP 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()
parse(buffer, attributes)
end
defp parse("", attributes) do
{:ok, nil, attributes}
end
defp parse(buffer, attributes) do
case (buffer |> DateTime.from_iso8601()) do
{:ok, timestamp, _} ->
{:ok, timestamp, attributes}
_ ->
{:error, :invalid_format, buffer}
end
end
end