Current section
Files
Jump to
Current section
Files
lib/key_values3.ex
defmodule KeyValues3 do
@moduledoc """
A basic KeyValues3 (KV3) parser in pure Elixir.
"""
@doc """
Parses a KV3 value from `input`, skipping the typical header present in KV3 files.
"""
def decode(input) do
case KeyValues3.Parser.parse(input) do
{:ok, result, _, _, _, _} ->
{:ok, List.first(result)}
{:error, _error, _, _, _, _} ->
{:error, "failed to decode, create an issue on github if it shouldn't fail"}
end
end
@doc """
Parses a KV3 value from `input`, skipping the typical header present in KV3 files.
Similar to decode/2 but raises in case of errors.
"""
def decode!(input) do
case decode(input) do
{:ok, result} -> result
{:error, error} -> raise error
end
end
@doc """
Parses a KV3 value from `input`.
"""
def decode_value(input) do
case KeyValues3.Parser.value(input) do
{:ok, result, _, _, _, _} ->
{:ok, List.first(result)}
{:error, _error, _, _, _, _} ->
{:error, "failed to decode, create an issue on github if it shouldn't fail"}
end
end
@doc """
Parses a KV3 value from `input`.
Similar to decode_value/2 but raises in case of errors.
"""
def decode_value!(input) do
case decode_value(input) do
{:ok, result} -> result
{:error, error} -> raise error
end
end
end