@spec parse(binary(), 2..36) ::
{integer(), remainder_of_binary :: binary()} | :error
Parses a text representation of an integer.
An optional base to the corresponding integer can be provided. If base is not
given, 10 will be used.
If successful, returns a tuple in the form of {integer, remainder_of_binary}.
Otherwise :error.
Raises an error if base is less than 2 or more than 36.
If you want to convert a string-formatted integer directly to an integer,
String.to_integer/1 or String.to_integer/2 can be used instead.
## Examples
iex> Integer.parse("34")
{34, ""}
iex> Integer.parse("34.5")
{34, ".5"}
iex> Integer.parse("three")
:error
iex> Integer.parse("34", 10)
{34, ""}
iex> Integer.parse("f4", 16)
{244, ""}
iex> Integer.parse("Awww++", 36)
{509216, "++"}
iex> Integer.parse("fab", 10)
:error
iex> Integer.parse("a2", 38)
** (ArgumentError) invalid base 38