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
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.
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")
Methods
impl PrintConfig
[src]
impl PrintConfig
pub fn from_env() -> PrintConfig
[src]
pub fn from_env() -> PrintConfig
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]
pub fn should_style_output(&self, output_kind: OutputKind) -> bool
Checks if output to a writer should be styled
pub fn paint_branch(
&self,
input: impl Display
) -> impl Display
[src]
pub fn paint_branch(
&self,
input: impl Display
) -> impl Display
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]
pub fn paint_leaf(
&self,
input: impl Display
) -> impl Display
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 Clone for PrintConfig
fn clone(&self) -> PrintConfig
[src]
fn clone(&self) -> PrintConfig
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for PrintConfig
[src]
impl Debug for PrintConfig
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl PartialEq for PrintConfig
[src]
impl PartialEq for PrintConfig
fn eq(&self, other: &PrintConfig) -> bool
[src]
fn eq(&self, other: &PrintConfig) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &PrintConfig) -> bool
[src]
fn ne(&self, other: &PrintConfig) -> bool
This method tests for !=
.
impl Default for PrintConfig
[src]
impl Default for PrintConfig
fn default() -> PrintConfig
[src]
fn default() -> PrintConfig
Returns the "default value" for a type. Read more
Auto Trait Implementations
impl Send for PrintConfig
impl Send for PrintConfig
impl Sync for PrintConfig
impl Sync for PrintConfig