Packages
jsv
0.17.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/uri.ex
defmodule JSV.FormatValidator.Default.Optional.URI do
@moduledoc false
@external_resource "priv/grammars/uri.abnf"
use AbnfParsec,
abnf_file: "priv/grammars/uri.abnf",
unbox: [],
ignore: []
@doc false
@spec parse_uri(binary) :: {:ok, URI.t()} | {:error, term}
def parse_uri(data) do
case uri(data) do
{:ok, _, "", _, _, _} -> {:ok, URI.parse(data)}
_ -> {:error, :invalid_URI}
end
end
@doc false
@spec parse_uri_reference(binary) :: {:ok, URI.t()} | {:error, term}
def parse_uri_reference(data) do
case uri_reference(data) do
{:ok, _, "", _, _, _} -> {:ok, URI.parse(data)}
_ -> {:error, :invalid_URI_reference}
end
end
end