Dumbo.Decoder (Dumbo v0.1.0)

Copy Markdown View Source

Decoder implementation for the PHP serialisation format.

Summary

Functions

Deserialises a PHP serialised string into an Elixir term.

Types

decode_opts()

@type decode_opts() :: {:decode_opts}

Functions

decode(source, opts \\ decode_opts())

Deserialises a PHP serialised string into an Elixir term.

Examples

iex> Dumbo.Decoder.decode("N;")
nil

iex> Dumbo.Decoder.decode("b:0;")
false
iex> Dumbo.Decoder.decode("b:1;")
true

iex> Dumbo.Decoder.decode("i:685230;")
685230
iex> Dumbo.Decoder.decode("i:-685230;")
-685230

iex> Dumbo.Decoder.decode("d:685230.15;")
685230.15
iex> Dumbo.Decoder.decode("d:INF;")
:infinity
iex> Dumbo.Decoder.decode("d:-INF;")
:negative_infinity
iex> Dumbo.Decoder.decode("d:NAN;")
:nan

iex> Dumbo.Decoder.decode(~s's:6:"foobar";')
"foobar"

iex> Dumbo.Decoder.decode(~s'a:2:{i:42;b:1;s:6:"A to Z";a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}}')
%{42 => true, "A to Z" => %{0 => 1, 1 => 2, 2 => 3}}
iex> Dumbo.Decoder.decode("a:0:{}")
%{}

iex> Dumbo.Decoder.decode(~s'O:8:"stdClass":2:{s:4:"John";d:3.14;s:4:"Jane";d:2.718;}')
{:object, "stdClass", %{"John" => 3.14, "Jane" => 2.718}}

decode_opts(args \\ [])

(macro)

decode_opts(record, args)

(macro)