Current section
Files
Jump to
Current section
Files
lib/bson.ex
defmodule BSON do @moduledoc """ Functions for encoding and decoding BSON documents. """ @type t :: document | String.t | atom | number | boolean | BSON.Binary.t | BSON.ObjectId.t | BSON.DateTime.t | BSON.Regex.t | BSON.JavaScript.t | BSON.Timestamp.t | [t] @type document :: %{atom => BSON.t} | %{String.t => BSON.t} | [{atom, BSON.t}] | [{String.t, BSON.t}] @doc """ Encode a BSON document to `iodata`. """ @spec encode(document) :: iodata def encode(map) when is_map(map) do BSON.Encoder.encode(map) end def encode([{_, _}|_] = keyword) do BSON.Encoder.encode(keyword) end @doc """ Decode `iodata` to a BSON document. """ @spec decode(iodata) :: document def decode(binary) when is_binary(binary) do BSON.Decoder.decode(binary) end def decode(list) when is_list(list) do IO.iodata_to_binary(list) |> BSON.Decoder.decode endend