CustomBase allow you to make custom base conversion in Elixir.
Add {:custom_base, "~> 0.2"}
to deps
function in your mix.exs
file.
After you are done, run mix deps.get
in your shell to fetch and compile CustomBase.
Lets make Base12
module with conversion described below.
Value | Encoding |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | A |
11 | B |
Add macro to your module:
defmodule Base12 do
use CustomBase, '0123456789AB'
end
Now your module have 2 functions encode/1
and decode/1
:
iex> Base12.encode(9)
"9"
iex> Base12.encode(10)
"A"
iex> Base12.encode(11)
"B"
iex> Base12.encode(12)
"10"
iex> Base12.decode("16")
18
iex> Base12.decode("AB")
131
All specs included by this library, if you want to provide your documentation,
add it after use
call, like this:
defmodule Base12 do
use CustomBase, '0123456789AB'
@moduledoc """
Your module docs.
"""
@doc """
Documentation for encode/1.
"""
def encode(integer)
@doc """
Documentation for decode/1.
"""
def decode(binary)
@doc """
Documentation for decode!/1.
"""
def decode!(binary)
end
Copyright (c) 2015 Igor Kapkov
This library is MIT licensed. See the LICENSE for details.