Packages
jsv
0.18.1
0.21.2
0.21.1
0.21.0
0.20.0
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.5
0.11.4
0.11.3
retired
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
A JSON Schema Validator with complete support for the latest specifications.
Current section
Files
Jump to
Current section
Files
lib/jsv/format_validator/default/optional/iri.ex
defmodule JSV.FormatValidator.Default.Optional.IRI do
@moduledoc false
@external_resource "priv/grammars/iri.abnf"
use AbnfParsec,
abnf_file: "priv/grammars/iri.abnf",
unbox: [],
ignore: []
@doc false
@spec parse_iri(binary) :: {:ok, URI.t()} | {:error, term}
def parse_iri(data) do
case iri(data) do
{:ok, _, "", _, _, _} -> {:ok, URI.parse(data)}
_ -> {:error, :invalid_IRI}
end
end
@doc false
@spec parse_iri_reference(binary) :: {:ok, URI.t()} | {:error, term}
def parse_iri_reference(data) do
case iri_reference(data) do
{:ok, _, "", _, _, _} -> {:ok, URI.parse(data)}
_ -> {:error, :invalid_IRI_reference}
end
end
end