defmodule Translator.Parser.JSON do @extensions ["json"] @type contents :: String.t() @type data :: map @type extensions :: [String.t()] @behaviour Translator.Parser.Base @impl true @spec parse(contents) :: {:ok, data} | {:error, atom | Jason.DecodeError.t()} def parse(contents) do Jason.decode(contents) end @impl true @spec generate(data) :: {:ok, contents} | {:error, any} def generate(data) do Jason.encode(data) end @impl true @spec extensions() :: {:ok, extensions} def extensions(), do: {:ok, @extensions} end