Packages
reactor
1.0.2
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/dsl/build.ex
# SPDX-FileCopyrightText: 2023 James Harton, Zach Daniel, Alembic Pty and contributors
# SPDX-FileCopyrightText: 2023 reactor contributors <https://github.com/ash-project/reactor/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defprotocol Reactor.Dsl.Build do
@moduledoc """
A protocol which DSL entities must implement.
"""
@doc """
Build an entity into a Reactor.
This function is called during conversion of a DSL module into a Reactor
struct. This allows extensions to specify the behaviour of how they want
to alter the structure of the Reactor.
"""
@spec build(t, Reactor.t()) :: {:ok, Reactor.t()} | {:error, any}
def build(entity, reactor)
@doc """
Perform any after-compilation verification that is needed to make the entity
work.
See `Spark.Dsl.Verifier` for more information.
"""
@spec verify(t, Spark.Dsl.t()) :: :ok | {:error, any}
def verify(entity, dsl_state)
end