Search documentation of Localize

# Localize.Collation.Insensitive (Localize v0.39.0)

Copy Markdown View Source

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).

## Summary

### Functions

compare(string_a, string_b)

Compare two strings in a case-insensitive manner.

## Functions

# compare(string_a, string_b)

    @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