Packages
reactor
0.10.3
1.0.2
1.0.1
1.0.0
0.17.0
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
An asynchronous, graph-based execution engine
Current section
Files
Jump to
Current section
Files
lib/reactor/template.ex
defmodule Reactor.Template do
@moduledoc """
Templates used to refer to some sort of computed value.
"""
alias __MODULE__.{Element, Input, Result, Value}
@type t :: Element.t() | Input.t() | Result.t() | Value.t()
@doc "The type for use in option schemas"
@spec type :: Spark.Options.type()
def type, do: {:or, [{:struct, Element}, {:struct, Input}, {:struct, Result}, {:struct, Value}]}
@doc "A guard for input templates"
@spec is_input_template(any) :: Macro.output()
defguard is_input_template(template) when is_struct(template, Input)
@doc "A guard for result templates"
@spec is_result_template(any) :: Macro.output()
defguard is_result_template(template) when is_struct(template, Result)
@doc "A guard for value templates"
@spec is_value_template(any) :: Macro.output()
defguard is_value_template(template) when is_struct(template, Value)
@doc "A guard for element templates"
@spec is_element_template(any) :: Macro.output()
defguard is_element_template(template) when is_struct(template, Element)
@doc "A guard to detect all template types"
@spec is_template(any) :: Macro.output()
defguard is_template(template)
when is_input_template(template) or is_result_template(template) or
is_value_template(template) or is_element_template(template)
end