Mizur v1.0.1 Mizur.Infix

This module offers infix versions of the common functions of the Mizur module.

When used, it accepts the following options:

  • :only : same of :only in importation
  • :except : same of :except in importation

Summary

Functions

Infix version of not Mizur.equals/2

Infix version of not Mizur.strict_equals/2

Infix version of Mizur.mult/2

Infix version of Mizur.add/2

Infix version of Mizur.sub/2

Infix version of Mizur.Range.new/2

Infix version of Mizur.div/2

Infix version of Mizur.compare/2 == :lt

Infix version of Mizur.compare/2 == :lt || :eq

Infix (and reverted) version of from/2

Infix version of Mizur.equals/2

Infix version of Mizur.strict_equals/2

Infix version of Mizur.compare/2 == :gt

Infix version of Mizur.compare/2 == :gt || :eq

Helper to build typed_value

Infix version of from/2

Functions

Infix version of not Mizur.equals/2 :

iex> use Mizur.Infix, only: [!=: 2]
...> MizurTest.Distance.cm(100) != MizurTest.Distance.m(2)
true
a !== b

Infix version of not Mizur.strict_equals/2 :

iex> use Mizur.Infix, only: [!==: 2]
...> MizurTest.Distance.cm(100) !== MizurTest.Distance.m(100)
true

Infix version of Mizur.mult/2:

iex> use Mizur.Infix, only: [*: 2]
...> a = MizurTest.Distance.cm(12)
...> a * 10
MizurTest.Distance.cm(120)

Infix version of Mizur.add/2 :

iex> use Mizur.Infix, only: [+: 2]
...> a = MizurTest.Distance.cm(12)
...> b = MizurTest.Distance.m(2)
...> a + b
MizurTest.Distance.cm(212)

Infix version of Mizur.sub/2:

iex> use Mizur.Infix, only: [-: 2]
...> a = MizurTest.Distance.cm(12)
...> b = MizurTest.Distance.m(2)
...> b - a
MizurTest.Distance.m(1.88)

Infix version of Mizur.Range.new/2.

iex> use Mizur.Infix, only: [..: 2]
...> MizurTest.Distance.cm(1) .. MizurTest.Distance.m(1)
Mizur.Range.new(MizurTest.Distance.cm(1), MizurTest.Distance.cm(100))

Infix version of Mizur.div/2:

iex> use Mizur.Infix, only: [/: 2]
...> a = MizurTest.Distance.cm(12)
...> a / 2
MizurTest.Distance.cm(6)

Infix version of Mizur.compare/2 == :lt :

iex> use Mizur.Infix, only: [<: 2]
...> MizurTest.Distance.cm(100) < MizurTest.Distance.m(11)
true

Infix version of Mizur.compare/2 == :lt || :eq :

iex> use Mizur.Infix, only: [<=: 2]
...> MizurTest.Distance.cm(100) <= MizurTest.Distance.m(1)
true

Infix (and reverted) version of from/2.

For example:

iex> import Mizur.Infix, only: [<~: 2]
...> MizurTest.Distance.m <~ MizurTest.Distance.cm(100) 
{MizurTest.Distance.m, 1.0}

Infix version of Mizur.equals/2 :

iex> use Mizur.Infix, only: [==: 2]
...> MizurTest.Distance.cm(100) == MizurTest.Distance.m(1)
true
a === b

Infix version of Mizur.strict_equals/2 :

iex> use Mizur.Infix, only: [===: 2]
...> MizurTest.Distance.cm(100) == MizurTest.Distance.cm(100)
true

Infix version of Mizur.compare/2 == :gt :

iex> use Mizur.Infix, only: [>: 2]
...> MizurTest.Distance.cm(100) > MizurTest.Distance.m(0.9)
true

Infix version of Mizur.compare/2 == :gt || :eq :

iex> use Mizur.Infix, only: [>=: 2]
...> MizurTest.Distance.cm(100) >= MizurTest.Distance.m(1)
true

Helper to build typed_value

iex> use Mizur.Infix, only: [in: 2]
...> a = MizurTest.Distance.cm(120)
...> {a in MizurTest.Distance.m, 12 in MizurTest.Distance.km}
{MizurTest.Distance.m(1.2), MizurTest.Distance.km(12)}

Infix version of from/2.

For example:

iex> import Mizur.Infix, only: [~>: 2]
...> MizurTest.Distance.cm(100) ~> MizurTest.Distance.m
{MizurTest.Distance.m, 1.0}