Current section
Files
Jump to
Current section
Files
lib/exwrapper.ex
defmodule ExWrapper do
@moduledoc """
Some help functions to make wrapper from erlang lib.
"""
@doc """
This function convert all old charslist in all datastructure to BitString, recursively.
"""
def convert(term) when is_list(term) do
case not Enum.any?(term, &(not is_integer(&1) or (0 > &1 < 127))) do
true -> to_string(term)
false -> Enum.map(term, &(convert(&1)))
end
end
def convert(term) when is_map(term) do
Enum.map(term, &(convert(&1)))
end
def convert(term) when is_tuple(term) do
term |> Tuple.to_list |> convert |> List.to_tuple
end
def convert(term) do
term
end
@doc """
This function deconvert all BitString in all datastructure to old charslist, recursively.
"""
def deconvert(term) when is_bitstring(term) do
String.to_charlist(term)
end
def deconvert(term) when is_list(term) do
Enum.map(term, &(deconvert(&1)))
end
def deconvert(term) when is_map(term) do
Enum.map(term, &(deconvert(&1)))
end
def deconvert(term) when is_tuple(term) do
term |> Tuple.to_list |> deconvert |> List.to_tuple
end
def deconvert(term) do
term
end
end