Inspect.Opts
Определяет опции, используемые протоколом Inspect.
Доступны следующие поля:
:base- печатает целые числа как:binary,:octal,:decimal, или:hex, по умолчанию:decimal. При инспектировании двоичных данных любой:baseкроме:decimalподразумеваетbinaries: :as_binaries.-
:binaries- при:as_binariesвсе двоичные данные будут напечатаны в битовой записи.При
:as_stringsвсе двоичные данные будут напечатаны как строки, непечатаемые байты будут экранированы. При использовании значения по умолчанию:infer, двоичные данные будут напечатаны как строки, если они печатаемы, иначе в битовой записи. СмотритеString.printable?/1, чтобы узнать, когда строка печатаема. -
:charlists- при:as_charlistsвсе списки будут напечатаны как списки символов, непечатаемые элементы будут экранированы.При
:as_listsвсе списки будут напечатаны как списки. При значении по умолчанию:infer, список будет напечатан как список символов, если он печатаем, иначе как список. СмотритеList.ascii_printable?/1, чтобы узнать, когда список символов печатаем. :custom_options(с версии v1.9.0) - список ключевых слов, хранящий пользовательские опции. Полезно при реализации протоколаInspectдля вложенных структур, чтобы передавать пользовательские опции.:inspect_fun(с версии v1.9.0) - функция для построения документов алгебры. По умолчаниюInspect.Opts.default_inspect_fun/0.:limit- ограничивает количество элементов, которые инспектируются для кортежей, битовых строк, карт, списков и любых других коллекций элементов, за исключением печатаемых строк и печатаемых списков символов, которые используют опцию:printable_limit. Если вы не хотите ограничивать количество элементов конкретным числом, используйте:infinity. Принимает положительное целое число или:infinity. По умолчанию50.:pretty- если установлено вtrue, включает красивую печать. По умолчаниюfalse.:printable_limit- ограничивает количество символов, которые инспектируются в печатаемых строках и печатаемых списках символов. Вы можете использоватьString.printable?/1иList.ascii_printable?/1, чтобы проверить, является ли заданная строка или список символов печатаемым. Если вы не хотите ограничивать количество символов конкретным числом, используйте:infinity. Принимает положительное целое число или:infinity. По умолчанию4096.:safe- если установлено вfalse, ошибки при инспектировании структур будут генерироваться как ошибки вместо обертывания в исключениеInspect.Error. Это полезно при отладке ошибок и сбоев для пользовательских реализаций инспекции.:structs- если установлено вfalse, структуры не форматируются протоколом инспекции, а вместо этого печатаются как карты. По умолчаниюtrue.:syntax_colors- при установке в список ключевых слов цветов, вывод цветной. Ключи — типы, значения — цвета для каждого типа (например,[number: :red, atom: :blue]). Типы могут включать:atom,:binary,:boolean,:list,:map,:number,:regex,:string, и:tuple. Пользовательские типы данных могут предоставлять свои собственные опции. Цвета могут быть любымиIO.ANSI.ansidata/0, принятымиIO.ANSI.format/1.:width- количество символов на строке, используемое, когда красивое форматированиеtrueили при печати в устройства ввода-вывода. Установите в0для принудительного печати каждого элемента на отдельной строке. Если вы не хотите ограничивать количество элементов конкретным числом, используйте:infinity. По умолчанию80.
Краткое описание
Типы
Функции
- default_inspect_fun()
Возвращает функцию инспекции по умолчанию.
- default_inspect_fun(fun)
Устанавливает функцию инспекции по умолчанию.
- new(opts)
Создаёт структуру
Inspect.Opts.
Типы
color_key()Источник
@type color_key() :: atom()
t()Источник
@type 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: non_neg_integer() | :infinity,
pretty: boolean(),
printable_limit: non_neg_integer() | :infinity,
safe: boolean(),
structs: boolean(),
syntax_colors: [{color_key(), IO.ANSI.ansidata()}],
width: non_neg_integer() | :infinity
} Функции
default_inspect_fun()Источник
@spec default_inspect_fun() :: (term(), t() -> Inspect.Algebra.t())
Возвращает функцию инспекции по умолчанию.
default_inspect_fun(fun)Источник
@spec default_inspect_fun((term(), t() -> Inspect.Algebra.t())) :: :ok
Устанавливает функцию инспекции по умолчанию.
Устанавливайте эту опцию с осторожностью, так как она изменит способ инспектирования всех значений в системе. Основное использование этой функциональности — предоставление точки входа для фильтрации инспектируемых значений, чтобы сущности соответствовали правилам и законодательству по безопасности и конфиденциальности данных.
Категорически не рекомендуется библиотекам устанавливать свою собственную функцию, так как это должно контролироваться приложениями. Библиотеки должны вместо этого определять собственные структуры с пользовательскими реализациями инспекции. Если библиотеке нужно изменить функцию инспекции по умолчанию, то лучше всего попросить пользователей вашей библиотеки явно вызвать default_inspect_fun/1 с вашей функцией по выбору.
По умолчанию Inspect.inspect/2.
Примеры
previous_fun = Inspect.Opts.default_inspect_fun()
Inspect.Opts.default_inspect_fun(fn
%{address: _} = map, opts ->
previous_fun.(%{map | address: "[REDACTED]"}, opts)
value, opts ->
previous_fun.(value, opts)
end) new(opts)Источник
@spec new(keyword()) :: t()
Создаёт структуру Inspect.Opts.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.13.4/Inspect.Opts.html