# `GeoGenius.Runners.Inline`
[🔗](https://github.com/agoodway/geo_genius/blob/main/lib/geo_genius/runners/inline.ex#L1)

Runs an import in the calling process.

This is the honest default for a host with a small catalog and no job
framework installed: `enqueue/3` does not return until
`GeoGenius.Pipeline.execute/3` has finished, so by the time it does, the
run's outcome is already durable in PostgreSQL.

Ships in place of the plan's `Runners.Test`, because this is not a
test-only module -- it is the backend a host without PgFlow or a
`Task.Supervisor` actually runs imports under.

# `available?`

```elixir
@spec available?() :: boolean()
```

Always `true`: running in the calling process needs no configuration.

# `enqueue`

```elixir
@spec enqueue(GeoGenius.Context.t(), Ecto.UUID.t(), GeoGenius.Runner.args()) ::
  :ok | {:error, GeoGenius.Runner.enqueue_error()}
```

Runs the import synchronously and returns once it has finished.

Returns `:ok` for both an import that completed and one that ran and
recorded a failure -- either outcome is durably in the catalog, and a
caller reads it back from there rather than from this return value.
Returns `{:error, {:not_enqueued, reason}}` only when the pipeline reports
`:not_started`. A missing durable outcome after executor claim returns
`{:error, {:outcome_unknown, reason}}`, because the import may have mutated
its candidate even though its final state could not be confirmed.

# `name`

```elixir
@spec name() :: String.t()
```

Returns `"inline"`.

---

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