View Source EctoSparkles.ErlangTermBinary (Bonfire v0.9.10-classic-beta.169)

A custom Ecto type for handling the serialization of arbitrary data types stored as binary data in the database. Requires the underlying DB field to be a binary.

Summary

Functions

Callback implementation for Ecto.Type.cast/1.

Provides custom casting rules for params. Nothing changes here. We only need to handle deserialization.

Converting the data structure to binary for storage.

Callback implementation for Ecto.Type.embed_as/1.

Callback implementation for Ecto.Type.equal?/2.

Convert the raw binary value from the database back to the desired term.

Callback implementation for Ecto.Type.type/0.

Functions

Callback implementation for Ecto.Type.cast/1.

Provides custom casting rules for params. Nothing changes here. We only need to handle deserialization.

Converting the data structure to binary for storage.

Callback implementation for Ecto.Type.embed_as/1.

Callback implementation for Ecto.Type.equal?/2.

Convert the raw binary value from the database back to the desired term.

Uses Plug.Crypto.non_executable_binary_to_term/2 - a restricted version of :erlang.binary_to_term/2 that forbids executable terms, such as anonymous functions.

This function restricts atoms, with the [:safe] option set, so only existing (and loaded) atoms will be deserialized.

Callback implementation for Ecto.Type.type/0.