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

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

Structure controlling the print output formatting

Fields

depth: u32

Maximum recursion depth when printing

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

indent: usize

Indentation size. The default value is 3.

padding: usize

Padding size. The default value is 1.

styled: StyleWhen

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: IndentChars

Characters used to print indentation lines or “branches” of the tree

branch: Style

ANSI style used for printing the indentation lines (“branches”)

leaf: Style

ANSI style used for printing the item text (“leaves”)

Implementations

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Deserialize this value from the given Serde deserializer. Read more

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

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.