26 lines
565 B
Elixir
26 lines
565 B
Elixir
defmodule Localizator.Parser.JSON do
|
|
@extensions ["json"]
|
|
|
|
@type contents :: String.t()
|
|
@type data :: map
|
|
@type extensions :: [String.t()]
|
|
|
|
@behaviour Localizator.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
|