# `AmqpSidecar.Consumer`

Dynamically creates AMQP consumers based on the configuration.

Rules are matched by exchange plus AMQP topic patterns (`*` matches one
word, `#` matches zero or more words). Messages that match no rule are
acknowledged and dropped with a warning so they don't poison the queue.
A failed forward rejects the message with requeue so RabbitMQ redelivers it.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `match_rule`

```elixir
@spec match_rule([map()], String.t(), String.t()) :: map() | nil
```

Matches a rule by exchange and topic routing key.
`*` matches exactly one word, `#` matches zero or more words.

# `start_link`

# `topic_match?`

```elixir
@spec topic_match?(String.t(), String.t()) :: boolean()
```

AMQP topic pattern matching.

---

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