Spec-Zone.ru › Elixir 1.10

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.inspect/2.

  • :limit - ограничивает количество элементов, которые проверяются для кортежей, битовых строк, словарей, списков и других коллекций элементов. Он не применяется к печатаемым строкам и печатаемым спискам символов и по умолчанию равен 50. Если вы не хотите ограничивать количество элементов определенным числом, используйте :infinity.

  • :pretty - если установлено значение true, активирует красивый вывод, по умолчанию false.

  • :printable_limit - ограничивает количество символов, проверяемых в печатаемых строках и печатаемых списках символов. Вы можете использовать String.printable?/1 и List.ascii_printable?/1, чтобы проверить, является ли заданная строка или список символов печатаемым. По умолчанию 4096. Если вы не хотите ограничивать количество символов определенным числом, используйте :infinity.

  • :safe - если false, ошибки при проверке структур будут подниматься как ошибки вместо обёртывания в исключение Inspect.Error. Это полезно при отладке ошибок и сбоев для пользовательских реализаций inspect.

  • :structs - если false, структуры не форматируются протоколом inspect, а вместо этого выводятся как словари, по умолчанию 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 - по умолчанию 80 символов, используется при красивом выводе (true) или при выводе на устройства ввода-вывода. Установите значение 0, чтобы каждый элемент выводился на отдельной строке. Если вы не хотите ограничивать количество элементов определенным числом, используйте :infinity.

Резюме

Типы

color_key()
t()

Типы

color_key()

Спецификации

color_key() :: atom()

t()

Спецификации

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
}

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.10.4/Inspect.Opts.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API