# `Localize.Collation.Insensitive`
[🔗](https://github.com/elixir-localize/localize/blob/v0.39.0/lib/localize/collation/insensitive.ex#L1)

Case-insensitive string comparator for use with `Enum.sort/2`.

Implements the `compare/2` callback so this module can be passed directly
to `Enum.sort/2` as a comparator:

    Enum.sort(strings, Localize.Collation.Insensitive)

Uses the NIF backend when available for maximum performance, otherwise
falls back to the pure Elixir implementation at secondary strength
(which ignores case distinctions).

# `compare`

```elixir
@spec compare(String.t(), String.t()) :: :lt | :eq | :gt
```

Compare two strings in a case-insensitive manner.

### Arguments

* `string_a` - the first string to compare.

* `string_b` - the second string to compare.

### Returns

* `:lt` if `string_a` sorts before `string_b`.

* `:eq` if `string_a` and `string_b` are collation-equal (ignoring case).

* `:gt` if `string_a` sorts after `string_b`.

### Examples

    iex> Localize.Collation.Insensitive.compare("a", "A")
    :eq

    iex> Localize.Collation.Insensitive.compare("b", "a")
    :gt

---

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