pub struct GrowerTreeConfigurationBuilder { /* private fields */ }Expand description
Builder for GrowerTreeConfiguration.
Implementations§
Source§impl GrowerTreeConfigurationBuilder
impl GrowerTreeConfigurationBuilder
Sourcepub fn target_name<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn target_name<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
This field holds verbatim the lower-kebab-case target-name belonging to the tree grow process.
Sourcepub fn depth<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn depth<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
Set this integer to define how many levels exist from root to leaf in the tree (≥5).
- Setting a higher number → deeper specialization (depth).
- Setting a lower number → simpler, more general modeling.
Sourcepub fn breadth<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn breadth<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
Set this integer to define how many siblings or sub-branches each node has by default (≥7).
- Higher → broad coverage, e.g. “Spread (Loosen).”
- Lower → narrower, e.g. “Narrow (Tighten).”
Sourcepub fn density<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn density<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
Set this integer to define how many variants (children) each leaf node holds by default (≥9).
- Higher → more fullness (“Dense”).
- Lower → sparser representation (“Sparse”).
Sourcepub fn leaf_granularity<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn leaf_granularity<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this fraction [0..1] to specify how finely detailed each leaf item becomes.
- 0 = coarse (broad, less specialized leaves),
- 1 = extremely specific leaves.
Sourcepub fn balance_symmetry<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn balance_symmetry<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this fraction [0..1] to numerically characerize the symmetrical vs. unbalanced structure of our tree.
- 0.0 = random/unbalanced,
- 1.0 = perfectly balanced.
Sourcepub fn complexity<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilderwhere
VALUE: Into<ConfigurationComplexity>,
pub fn complexity<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilderwhere
VALUE: Into<ConfigurationComplexity>,
Set this field to select between “simple”, “balanced”, or “complex” for overall usage patterns.
Sourcepub fn level_specific<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn level_specific<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to specify the arrays for per-level breadth & density overrides.
Sourcepub fn weighted_branching<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn weighted_branching<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to define mean ± variance if you want random branching factors.
Sourcepub fn level_skipping<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn level_skipping<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to define probabilities for skipping deeper expansions at certain levels.
Sourcepub fn capstone<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn capstone<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to define the characteristics of capstone leaves, how many of them there are, and our chances of encountering one at any given level.
Sourcepub fn ordering<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
pub fn ordering<VALUE>(self, value: VALUE) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to define how sub-branches get ordered (alphabetical, difficulty, random).
Sourcepub fn ai_confidence<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn ai_confidence<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this optional sub-struct to define how AI confidence modifies branch factor (if any).
Sourcepub fn aggregator_preference<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn aggregator_preference<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Set this fraction [0..1] to control how often aggregator nodes are used vs. dispatch nodes at intermediate levels.
- 0.0 => always dispatch
- 1.0 => always aggregator
- 0.5 => half aggregator, half dispatch
This is a simplistic alternative to tree_expansion_policy. If tree_expansion_policy is set to something
more advanced, this field might be ignored or used as a fallback.
Sourcepub fn allow_early_leaves<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn allow_early_leaves<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
If true, leaf nodes may appear before the final depth, i.e. some sub-branches might terminate
early with a LeafHolder.
If false, all leaves appear exactly at depth.
Sourcepub fn partial_subbranch_probability<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn partial_subbranch_probability<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
Fraction [0..1] controlling how often each potential child sub-branch is included.
- 0.0 => no optional sub-branches
- 1.0 => all sub-branches are included
This might tie into ChildSpec optional or probability fields, e.g. randomizing
which children appear.
Sourcepub fn tree_expansion_policy<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilderwhere
VALUE: Into<TreeExpansionPolicy>,
pub fn tree_expansion_policy<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilderwhere
VALUE: Into<TreeExpansionPolicy>,
An advanced enum describing how to pick among Dispatch, Aggregate, or LeafHolder
at each level.
- If you set this to
NodeVariantStrategy::Simple, you get a straightforward approach where we do dispatch at intermediate nodes and leaves at final depth. - If you use
Weighted, you can do random picks among aggregator/dispatch/leaf. - If you do
DepthBased, you can specify exactly which level to start aggregator vs. leaf.
Sourcepub fn aggregator_depth_limit<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn aggregator_depth_limit<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
If set, aggregator nodes will not appear deeper than this level.
If None, no limit.
If Some(n), aggregator variant is disallowed for levels > n.
Sourcepub fn dispatch_depth_limit<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn dispatch_depth_limit<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
If set, dispatch nodes will not appear deeper than this level.
If None, no limit.
If Some(n), dispatch variant is disallowed for levels > n.
Sourcepub fn leaf_min_depth<VALUE>(
self,
value: VALUE,
) -> GrowerTreeConfigurationBuilder
pub fn leaf_min_depth<VALUE>( self, value: VALUE, ) -> GrowerTreeConfigurationBuilder
If set, leaf-holder nodes cannot appear before this level (forces deeper expansions).
If None, no minimum.
If Some(n), we skip leaf-holder variants until level ≥ n.
Sourcepub fn try_build(
self,
) -> Result<GrowerTreeConfiguration, GrowerTreeConfigurationBuilderError>
pub fn try_build( self, ) -> Result<GrowerTreeConfiguration, GrowerTreeConfigurationBuilderError>
Source§impl GrowerTreeConfigurationBuilder
impl GrowerTreeConfigurationBuilder
Sourcepub fn build(
self,
) -> Result<GrowerTreeConfiguration, GrowerTreeConfigurationError>
pub fn build( self, ) -> Result<GrowerTreeConfiguration, GrowerTreeConfigurationError>
Consume the builder, construct the config, then validate it before returning.
Trait Implementations§
Source§impl Default for GrowerTreeConfigurationBuilder
impl Default for GrowerTreeConfigurationBuilder
Source§fn default() -> GrowerTreeConfigurationBuilder
fn default() -> GrowerTreeConfigurationBuilder
Auto Trait Implementations§
impl Freeze for GrowerTreeConfigurationBuilder
impl RefUnwindSafe for GrowerTreeConfigurationBuilder
impl Send for GrowerTreeConfigurationBuilder
impl Sync for GrowerTreeConfigurationBuilder
impl Unpin for GrowerTreeConfigurationBuilder
impl UnsafeUnpin for GrowerTreeConfigurationBuilder
impl UnwindSafe for GrowerTreeConfigurationBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);