Skip to content

Allow you to make custom base conversion in Elixir.

License

Notifications You must be signed in to change notification settings

botwerk/custom_base

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CustomBase

VersionLicenseBuild StatusIssuesDownloadsDonation

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.

Example

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

Released under the MIT License.

About

Allow you to make custom base conversion in Elixir.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%