defmodule Ash.Query.Operator.NotEq do @moduledoc """ left != right In comparison, simplifies to `not(left == right)` """ use Ash.Query.Operator, operator: :!=, name: :not_eq, predicate?: true, types: [:same, :any] alias Ash.Query.Not alias Ash.Query.Operator.Eq def evaluate(%{left: nil}), do: {:known, nil} def evaluate(%{right: nil}), do: {:known, nil} def evaluate(%{left: left, right: right}) do {:known, Comp.not_equal?(left, right)} end def simplify(%__MODULE__{left: left, right: right}) do %Not{expression: %Eq{left: left, right: right}} end end