# `GuardedStruct.Derive.SanitizerDerive`
[🔗](https://github.com/mishka-group/guarded_struct/blob/v0.1.4/lib/guarded_struct/derive/sanitizer_derive.ex#L1)

Built-in sanitizer ops. Every clause follows the pipe-friendly
`sanitize(value, op)` argument order:

    "  Hello  " |> SanitizerDerive.sanitize(:trim) |> SanitizerDerive.sanitize(:downcase)
    # => "hello"

# `call`

```elixir
@spec call({atom(), any()}, [any()]) :: {any(), any()}
```

# `sanitize`

```elixir
@spec sanitize(any(), atom() | tuple()) :: any()
```

# `validate_pattern`

```elixir
@spec validate_pattern(module(), any(), atom()) :: any()
```

Apply a user-defined sanitizer module's `sanitize/2` callback. The
callback receives the `value` first and the op atom second.

---

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