Skip to content

igas/custom_base

main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CustomBase

Test Module Version Hex Docs Total Download License Last Updated

CustomBase allow you to make custom base conversion in Elixir.

Installation

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.

Examples

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

Specs & Docs

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

License

Copyright (c) 2015 Igor Kapkov

This library is MIT licensed. See the LICENSE for details.

About

Allow you to make custom base conversion in Elixir.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages