# `Reactor.Info`
[🔗](https://github.com/ash-project/reactor/blob/main/lib/reactor/info.ex/#L6)

Introspection for the Reactor DSL.

# `reactor`

```elixir
@spec reactor(dsl_or_extended :: module() | map()) :: [struct()]
```

reactor DSL entities

# `reactor_description`

```elixir
@spec reactor_description(dsl_or_extended :: module() | map()) ::
  {:ok, String.t()} | :error
```

An optional description for the Reactor.

# `reactor_description!`

```elixir
@spec reactor_description!(dsl_or_extended :: module() | map()) ::
  String.t() | no_return()
```

An optional description for the Reactor.

# `reactor_middlewares`

```elixir
@spec reactor_middlewares(dsl_or_extended :: module() | map()) :: [struct()]
```

reactor.middlewares DSL entities

# `reactor_options`

```elixir
@spec reactor_options(dsl_or_extended :: module() | map()) :: %{
  required(atom()) =&gt; any()
}
```

reactor DSL options

Returns a map containing the and any configured or default values.

# `reactor_return`

```elixir
@spec reactor_return(dsl_or_extended :: module() | map()) :: {:ok, atom()} | :error
```

Specify which step result to return upon completion.

# `reactor_return!`

```elixir
@spec reactor_return!(dsl_or_extended :: module() | map()) :: atom() | no_return()
```

Specify which step result to return upon completion.

# `to_struct`

```elixir
@spec to_struct(module() | Reactor.t() | Spark.Dsl.t()) ::
  {:ok, Reactor.t()} | {:error, any()}
```

Convert a reactor DSL module into a reactor struct.

# `to_struct!`

```elixir
@spec to_struct!(module() | Reactor.t() | Spark.Dsl.t()) :: Reactor.t() | no_return()
```

Raising version of `to_struct/1`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
