Add value type specs for RDF.Datatype
This commit is contained in:
parent
3da72f9e6a
commit
08b4a44b13
9 changed files with 25 additions and 11 deletions
|
@ -7,6 +7,8 @@ defmodule RDF.Boolean do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: boolean
|
||||
|
||||
|
||||
@impl RDF.Datatype
|
||||
def convert(value, opts)
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.Date do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: Date.t | {Date.t, String.t}
|
||||
|
||||
@grammar ~r/\A(-?\d{4}-\d{2}-\d{2})((?:[\+\-]\d{2}:\d{2})|UTC|GMT|Z)?\Z/
|
||||
@xsd_datetime RDF.Datatype.NS.XSD.dateTime
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.DateTime do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: DateTime.t | NaiveDateTime.t
|
||||
|
||||
@xsd_date RDF.Datatype.NS.XSD.date
|
||||
|
||||
|
||||
|
|
|
@ -8,8 +8,11 @@ defmodule RDF.Decimal do
|
|||
|
||||
alias Elixir.Decimal, as: D
|
||||
|
||||
@type value :: Decimal.t | :nan
|
||||
|
||||
@xsd_integer RDF.Datatype.NS.XSD.integer
|
||||
|
||||
|
||||
@impl RDF.Datatype
|
||||
def convert(value, opts)
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.Double do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: float
|
||||
|
||||
|
||||
def build_literal_by_value(value, opts) do
|
||||
case convert(value, opts) do
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.Integer do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: integer
|
||||
|
||||
|
||||
@impl RDF.Datatype
|
||||
def convert(value, opts)
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.String do
|
|||
|
||||
alias RDF.Datatype.NS.XSD
|
||||
|
||||
@type value :: String.t
|
||||
|
||||
|
||||
def new(value, opts) when is_list(opts),
|
||||
do: new(value, Map.new(opts))
|
||||
|
|
|
@ -7,6 +7,8 @@ defmodule RDF.Time do
|
|||
|
||||
import RDF.Literal.Guards
|
||||
|
||||
@type value :: Time.t
|
||||
|
||||
@grammar ~r/\A(\d{2}:\d{2}:\d{2}(?:\.\d+)?)((?:[\+\-]\d{2}:\d{2})|UTC|GMT|Z)?\Z/
|
||||
@tz_grammar ~r/\A(?:([\+\-])(\d{2}):(\d{2}))\Z/
|
||||
|
||||
|
|
|
@ -7,17 +7,14 @@ defmodule RDF.Literal do
|
|||
alias RDF.IRI
|
||||
|
||||
@type literal_value ::
|
||||
boolean
|
||||
| integer
|
||||
| float
|
||||
| String.t
|
||||
| Decimal.t
|
||||
| Date.t
|
||||
| Time.t
|
||||
| DateTime.t
|
||||
| NaiveDateTime.t
|
||||
| {Date.t, String.t}
|
||||
| :nan
|
||||
RDF.Boolean.value
|
||||
| RDF.Integer.value
|
||||
| RDF.Double.value
|
||||
| RDF.String.value
|
||||
| RDF.Decimal.value
|
||||
| RDF.Date.value
|
||||
| RDF.Time.value
|
||||
| RDF.DateTime.value
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
value: literal_value,
|
||||
|
|
Loading…
Reference in a new issue