defmodule ExToolChest do
@moduledoc """
Documentation for `ExToolChest`.
"""
@doc """
Convert a pid to a string
## Examples
iex> ExToolChest.pid_to_string(IEx.Helpers.pid(0, 1, 2))
"0.1.2"
"""
def pid_to_string(pid) do
pid_inspection = "#{inspect pid}" # gives the string "#PID<0.105.0>"
pid_inspection
|> String.slice(5, 100)
|> String.trim(">")
end
@doc """
Convert a pid to a list
## Examples
iex> ExToolChest.pid_to_list(IEx.Helpers.pid(0, 1, 2))
[0, 1, 2]
"""
def pid_to_list(pid) do
pid_to_string(pid)
|> String.split(".")
|> Enum.map(fn x -> String.to_integer(x) end)
end
@doc """
Convert a pid to a tuple
## Examples
iex> ExToolChest.pid_to_tuple(IEx.Helpers.pid(0, 1, 2))
{0, 1, 2}
"""
def pid_to_tuple(pid) do
pid_to_string(pid)
|> String.split(".")
|> Enum.map(fn x -> String.to_integer(x) end)
|> List.to_tuple
end
end