Struct ptree::print_config::PrintConfig[][src]

pub struct PrintConfig {
    pub depth: u32,
    pub indent: usize,
    pub styled: StyleWhen,
    pub characters: IndentChars,
    pub branch: Style,
    pub leaf: Style,
}

Structure controlling the print output formatting

Fields

Maximum recursion depth when printing

The default is infinity, i.e. there is no recursion limit.

Indentation size. The default value is 3.

Control when output is styled.

The default value is StyleWhen::Tty, meaning that ANSI styles are only used for printing to the standard output, and only when the standard output is a TTY.

Characters used to print indentation lines or "branches" of the tree

ANSI style used for printing the indentation lines ("branches")

ANSI style used for printing the item text ("leaves")

Methods

impl PrintConfig
[src]

Load print configuration from a configuration file or environment variables

Configuration files and variables

If the PTREE_CONFIG environment variable is set, its value is used as the path to a file from which to read to configuration parameters. Otherwise, any file with a stem of ptree inside the directory returned by [config_dir] is used.

Finally, environment variables may be used to override the values from the configuration file. For every field of the PrintConfig structure, the corresponding environment variable name is PTREE_<FIELD_NAME>, for example PTREE_INDENT=4 sets the indent field to 4. Nested fields are supported; to set the branch foreground color use PTREE_BRANCH_FOREGROUND=red.

Field values

[indent] and [depth] accept non-negative integers.

[styled] accepts either "always", "tty" or "never"

[leaf] and [branch] accept a Style structure. In a configuration file, this takes a form of a map. Using environment variables, each field has to be set separately.

Color fields accept either an ANSI named color, a named web color, a hex code like "#33ffbb", an ANSI integer fixed color, or a [red, green, blue] triple of non-negative integers.

Other Style fields are boolean parameters. In a configuration file, they are parsed according to the rules of the deserialization format. In an environment variables, TRUE, ON and 1 evaluate to true, and FALSE, OFF and 0 evaluate to false. Environment variable values are case insensitive.

[characters] can be set to a string with a value of "utf", "ascii", "ascii-plus", "utf-bold", "utf-double" or "utf-dashed". Alternatively, it can be set to a structure with each of their fields set to the appropriate character.

Configuration file example

indent = 3
depth = 100
styled = "tty"

[branch]
foreground = "red"
dimmed = true
bold = false

[leaf]
foreground = "MediumSeaGreen"
background = "#102018"

Errors

This function does not report errors. If anything goes wrong while loading the configuration parameters, a default PrintConfig is returned.

Checks if output to a writer should be styled

Formats input according to the branch style

This function is a wrapper that is available even without the "ansi" feature. Without that feature it returns the input unchanged.

Formats input according to the leaf style

This function is a wrapper that is available even without the "ansi" feature. Without that feature it returns the input unchanged.

Trait Implementations

impl Clone for PrintConfig
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for PrintConfig
[src]

Formats the value using the given formatter. Read more

impl PartialEq for PrintConfig
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Default for PrintConfig
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for PrintConfig

impl Sync for PrintConfig