Elixir v1.9.1 Inspect.Opts View Source
Defines the options used by the Inspect
protocol.
The following fields are available:
:structs
- whenfalse
, structs are not formatted by the inspect protocol, they are instead printed as maps, defaults totrue
.: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. SeeString.printable?/1
to learn when a string is printable.: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. SeeList.ascii_printable?/1
to learn when a charlist is printable.:limit
- limits the number of items that are inspected for tuples, bitstrings, maps, lists and any other collection of items. It does not apply to printable strings nor printable 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 characters that are inspected on printable strings and printable charlists. You can useString.printable?/1
andList.ascii_printable?/1
to check if a given string or charlist is printable. Defaults to 4096. If you don't want to limit the number of characters to a particular number, use:infinity
.:pretty
- if set totrue
enables pretty printing, defaults tofalse
.:width
- defaults to 80 characters, used when pretty istrue
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
impliesbinaries: :as_binaries
.:safe
- whenfalse
, failures while inspecting structs will be raised as errors instead of being wrapped in theInspect.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 is 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 anyIO.ANSI.ansidata/0
as accepted byIO.ANSI.format/1
.:inspect_fun
(since v1.9.0) - a function to build algebra documents, defaults toInspect.inspect/2
:custom_options
(since v1.9.0) - a keyword list storing custom user-defined options. Useful when implementing theInspect
protocol for nested structs to pass the custom options through.
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, custom_options: keyword(), inspect_fun: (any(), t() -> Inspect.Algebra.t()), 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 }