Inspect.Opts
Inspect.Opts
Inspect 프로토콜이 사용하는 옵션을 정의하는 구조체예요. inspect할 때 어떻게 표현할지를 이 옵션들로 조절할 수 있어요. 사용 가능한 필드는 다음과 같아요.
출처: Inspect.Opts
본문
:base— 정수와 binary를:binary,:octal,:decimal, 또는:hex로 출력해요. 기본값은:decimal이에요.:binaries—:as_binaries면 모든 binary를 비트 문법으로 출력해요.:as_strings면 모든 binary를 문자열로 출력하고, 출력 불가능한 바이트는 이스케이프해요. 기본값인:infer에서는:base가:decimal이고 출력 가능하면 문자열로, 그렇지 않으면 비트 문법으로 출력해요. 문자열이 언제 출력 가능한지 알아보려면 String.printable?/1을 보세요.:charlists—:as_charlists면 모든 charlist를 charlist로 출력하고, 출력 불가능한 코드 포인트는 이스케이프해요. 나머지 리스트는 리스트로 출력해요.:as_lists면 모든 리스트를 리스트로 출력해요. 기본값인:infer에서는 출력 가능하면 charlist로, 그렇지 않으면 리스트로 출력해요. charlist가 언제 출력 가능한지 알아보려면 List.ascii_printable?/1을 보세요.:custom_options— (v1.9.0부터) 사용자가 정의한 커스텀 옵션을 저장하는 키워드 목록이에요. 중첩된 구조체를 위해 Inspect 프로토콜을 구현할 때 커스텀 옵션을 통과시키는 데 유용해요. 몇 가지 미리 정의된 키를 지원해요.:sort_maps— (v1.14.4부터) true로 설정하면 맵의 키-값 쌍을 정렬해요. 맵의 키 순서는 무작위라서, 테스트에서 맵 inspect를 결정적으로 만들 때 유용해요.:inspect_fun— (v1.9.0부터) 대수 문서를 만드는 함수예요. 기본값은 Inspect.Opts.default_inspect_fun/0이에요.
:limit— 튜플·bitstring·맵·리스트 등 항목 모음에서 inspect할 항목 수를 제한해요. 다만 출력 가능한 문자열과 charlist는:printable_limit옵션을 사용해요. 양의 정수나:infinity를 받아요. 중첩 컬렉션을 다루기 더 나은 기본값이라Elixir v1.20.0부터 기본값이200이에요.:pretty— true로 설정하면 pretty printing을 켜요. 기본값은false예요.:printable_limit— 출력 가능한 문자열과 charlist에서 inspect할 문자 수를 제한해요. String.printable?/1과 List.ascii_printable?/1로 주어진 문자열·charlist가 출력 가능한지 확인할 수 있어요. 특정 숫자로 제한하고 싶지 않으면:infinity를 쓰세요. 양의 정수나:infinity를 받아요. 기본값은4096이에요.:safe— false면 구조체 inspect 실패가 Inspect.Error 예외로 감싸지 않고 오류로 던져져요. 커스텀 inspect 구현의 실패·크래시를 디버깅할 때 유용해요. 기본값은true예요.:structs— false면 구조체가 inspect 프로토콜로 포맷되지 않고 맵으로 출력돼요. 기본값은true예요.:syntax_colors— 색상 키워드 목록으로 설정하면 출력에 색을 입혀요. 키는 타입이고 값은 각 타입에 쓸 색이에요(예:[number: :red, atom: :blue]). 타입에는:atom,:binary,:boolean,:list,:map,:number,:regex,:string,:tuple또는:variable,:call,:operator같은 AST를 나타내는 타입이 있어요. 커스텀 데이터 타입이 자신만의 옵션을 제공할 수도 있어요. 색은 IO.ANSI.format/1이 받는 어떤 IO.ANSI.ansidata/0든 될 수 있어요. 기본 색 목록은 IO.ANSI.syntax_colors/0에서 얻을 수 있어요.:width— pretty가 true이거나 IO 장치에 출력할 때 줄당 문자 수예요.0으로 설정하면 각 항목을 자기 줄에 강제로 출력해요. 특정 숫자로 제한하고 싶지 않으면:infinity를 쓰세요. 기본값은80이에요.
더 알아보기
- Inspect — Inspect.Opts를 사용하는 프로토콜
- Inspect.Algebra — inspect 표현을 만드는 데 쓰이는 대수 문서
- IO.ANSI —
:syntax_colors옵션과 관련된 ANSI 색상 기능