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

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

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

impl PrintConfig[src]

pub fn from_env() -> 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.

pub fn should_style_output(&self, output_kind: OutputKind) -> bool[src]

Checks if output to a writer should be styled

pub fn paint_branch(&self, input: impl Display) -> impl Display[src]

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.

pub fn paint_leaf(&self, input: impl Display) -> impl Display[src]

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]

impl Debug for PrintConfig[src]

impl Default for PrintConfig[src]

impl<'de> Deserialize<'de> for PrintConfig where
    PrintConfig: Default
[src]

impl PartialEq<PrintConfig> for PrintConfig[src]

impl Serialize for PrintConfig[src]

impl StructuralPartialEq for PrintConfig[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.