# `KiwiCodec.TransformModule`
[🔗](https://github.com/open-pencil/kiwi_codec/blob/v0.7.0/lib/kiwi_codec/transform_module.ex#L1)

Hook behaviour for custom Kiwi encode/decode normalization.

A Kiwi module can override `transform_module/0` and return a module that
implements this behaviour. The transform is called before encoding and after
decoding, mirroring the extension point in `elixir-protobuf`.

# `decode`

```elixir
@callback decode(
  struct(),
  module()
) :: struct()
```

# `encode`

```elixir
@callback encode(
  struct(),
  module()
) :: struct()
```

---

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