Current section
Files
Jump to
Current section
Files
lib/decoder.ex
defmodule RustyJson.Decoder do
@moduledoc """
JSON decoding module, compatible with Jason's `Decoder` module.
Provides `parse/2` as an alternative entry point for decoding JSON.
Delegates to `RustyJson.decode/2`.
"""
@doc """
Parses a JSON string into an Elixir term.
Returns `{:ok, term}` on success or `{:error, %RustyJson.DecodeError{}}` on failure.
## Options
See `RustyJson.decode/2` for available options.
## Examples
iex> RustyJson.Decoder.parse(~s({"name":"Alice"}))
{:ok, %{"name" => "Alice"}}
iex> RustyJson.Decoder.parse("invalid")
{:error, %RustyJson.DecodeError{}}
"""
@spec parse(iodata(), keyword()) :: {:ok, term()} | {:error, RustyJson.DecodeError.t()}
def parse(data, opts \\ []) do
RustyJson.decode(data, opts)
end
end