lib/parser/parser_behaviour.ex

defmodule JsonSchema.Parser.ParserBehaviour do
  @moduledoc """
  Describes the functions needed to implement a parser for a JSON schema node.
  """

  alias JsonSchema.{Parser, Types}
  alias Parser.ParserResult

  @callback type?(Types.schemaNode()) :: boolean

  @callback parse(
              Types.schemaNode(),
              URI.t(),
              URI.t() | nil,
              URI.t(),
              String.t()
            ) :: ParserResult.t()
end