Skip to content

Instantly share code, notes, and snippets.

@shdblowers
Created October 26, 2018 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shdblowers/9a33fcef430cc48f5b543f80ed4394fe to your computer and use it in GitHub Desktop.
Save shdblowers/9a33fcef430cc48f5b543f80ed4394fe to your computer and use it in GitHub Desktop.
defmodule Parser do
@callback parse(String.t) :: {:ok, term} | {:error, String.t}
@callback extensions() :: [String.t]
end
defmodule JSONParser do
@behaviour Parser
def parse(str), do: {:ok, "some json " <> str} # ... parse JSON
def extensions, do: ["json"]
end
defmodule YAMLParser do
@behaviour Parser
def parse(str), do: {:ok, "some yaml " <> str} # ... parse YAML
def extensions, do: ["yml"]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment