Elixir v1.8.0-rc.1 Inspect.Opts View Source

Defines the options used by the Inspect protocol.

The following fields are available:

  • :structs - when false, structs are not formatted by the inspect protocol, they are instead printed as maps, defaults to true.

  • :binaries - when :as_strings all binaries will be printed as strings, non-printable bytes will be escaped.

    When :as_binaries all binaries will be printed in bit syntax.

    When the default :infer, the binary will be printed as a string if it is printable, otherwise in bit syntax.

  • :charlists - when :as_charlists all lists will be printed as charlists, non-printable elements will be escaped.

    When :as_lists all lists will be printed as lists.

    When the default :infer, the list will be printed as a charlist if it is printable, otherwise as list.

  • :limit - limits the number of items that are printed for tuples, bitstrings, maps, lists and any other collection of items. It does not apply to strings nor charlists and defaults to 50. If you don't want to limit the number of items to a particular number, use :infinity.

  • :printable_limit - limits the number of bytes that are printed for strings and charlists. Defaults to 4096. If you don't want to limit the number of items to a particular number, use :infinity.

  • :pretty - if set to true enables pretty printing, defaults to false.

  • :width - defaults to 80 characters, used when pretty is true or when printing to IO devices. Set to 0 to force each item to be printed on its own line. If you don't want to limit the number of items to a particular number, use :infinity.

  • :base - prints integers as :binary, :octal, :decimal, or :hex, defaults to :decimal. When inspecting binaries any :base other than :decimal implies binaries: :as_binaries.

  • :safe - when false, failures while inspecting structs will be raised as errors instead of being wrapped in the Inspect.Error exception. This is useful when debugging failures and crashes for custom inspect implementations

  • :syntax_colors - when set to a keyword list of colors the output will be colorized. The keys are types and the values are the colors to use for each type (for example, [number: :red, atom: :blue]). Types can include :number, :atom, regex, :tuple, :map, :list, and :reset. Colors can be any IO.ANSI.ansidata/0 as accepted by IO.ANSI.format/1.

Link to this section Summary

Link to this section Types

Specs

color_key() :: atom()

Specs

t() :: %Inspect.Opts{
  base: :decimal | :binary | :hex | :octal,
  binaries: :infer | :as_binaries | :as_strings,
  char_lists: :infer | :as_lists | :as_char_lists,
  charlists: :infer | :as_lists | :as_charlists,
  limit: pos_integer() | :infinity,
  pretty: boolean(),
  printable_limit: pos_integer() | :infinity,
  safe: boolean(),
  structs: boolean(),
  syntax_colors: [{color_key(), IO.ANSI.ansidata()}],
  width: pos_integer() | :infinity
}