# `Unicode.Transform.Rule.Conversion`
[🔗](https://github.com/elixir-unicode/unicode_transform/blob/v1.1.0/lib/unicode/transform/rule.ex#L109)

A conversion rule maps text from one form to another.

### Syntax

Forward:
```
before_context { text_to_replace } after_context → completed_result | result_to_revisit ;
```

Backward:
```
completed_result | result_to_revisit ← before_context { text_to_replace } after_context ;
```

Dual:
```
a { b | c } d ↔ e { f | g } h ;
```

See [Conversion Rules](https://unicode.org/reports/tr35/tr35-general.html#Conversion_Rules).

# `side`

```elixir
@type side() :: %{
  before_context: String.t() | nil,
  text: String.t(),
  revisit: String.t() | nil,
  after_context: String.t() | nil
}
```

# `t`

```elixir
@type t() :: %Unicode.Transform.Rule.Conversion{
  direction: :forward | :backward | :both,
  left: side(),
  right: side()
}
```

---

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