#[non_exhaustive]pub struct CodebaseMetadata {
pub infer_types_from_usage: bool,
pub class_likes: AtomMap<ClassLikeMetadata>,
pub function_likes: HashMap<(Atom, Atom), FunctionLikeMetadata>,
pub symbols: Symbols,
pub constants: AtomMap<ConstantMetadata>,
pub all_class_like_descendants: AtomMap<AtomSet>,
pub direct_classlike_descendants: AtomMap<AtomSet>,
pub safe_symbols: AtomSet,
pub safe_symbol_members: HashSet<(Atom, Atom)>,
pub file_signatures: HashMap<FileId, FileSignature>,
}Expand description
Holds all analyzed information about the symbols, structures, and relationships within a codebase.
This acts as the central repository for metadata gathered during static analysis, including details about classes, interfaces, traits, enums, functions, constants, their members, inheritance, dependencies, and associated types.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.infer_types_from_usage: boolConfiguration flag: Should types be inferred based on usage patterns?
class_likes: AtomMap<ClassLikeMetadata>Map from class-like FQCN (Atom) to its detailed metadata (ClassLikeMetadata).
function_likes: HashMap<(Atom, Atom), FunctionLikeMetadata>Map from a function/method identifier tuple (scope_id, function_id) to its metadata (FunctionLikeMetadata).
scope_id is the FQCN for methods or often Atom::empty() for global functions.
symbols: SymbolsStores the kind (Class, Interface, etc.) for every known symbol FQCN.
constants: AtomMap<ConstantMetadata>Map from global constant FQN (Atom) to its metadata (ConstantMetadata).
all_class_like_descendants: AtomMap<AtomSet>Map from class/interface FQCN to the set of all its descendants (recursive).
direct_classlike_descendants: AtomMap<AtomSet>Map from class/interface FQCN to the set of its direct descendants (children).
safe_symbols: AtomSetSet of symbols (FQCNs) that are considered safe/validated.
safe_symbol_members: HashSet<(Atom, Atom)>Set of specific members (SymbolFQCN, MemberName) that are considered safe/validated.
file_signatures: HashMap<FileId, FileSignature>Each FileSignature contains a hierarchical tree of DefSignatureNode representing
top-level symbols (classes, functions, constants) and their nested members (methods, properties).
Implementations§
Source§impl CodebaseMetadata
impl CodebaseMetadata
Sourcepub fn class_exists(&self, name: &str) -> bool
pub fn class_exists(&self, name: &str) -> bool
Sourcepub fn interface_exists(&self, name: &str) -> bool
pub fn interface_exists(&self, name: &str) -> bool
Checks if an interface exists in the codebase (case-insensitive).
Sourcepub fn trait_exists(&self, name: &str) -> bool
pub fn trait_exists(&self, name: &str) -> bool
Checks if a trait exists in the codebase (case-insensitive).
Sourcepub fn enum_exists(&self, name: &str) -> bool
pub fn enum_exists(&self, name: &str) -> bool
Checks if an enum exists in the codebase (case-insensitive).
Sourcepub fn class_like_exists(&self, name: &str) -> bool
pub fn class_like_exists(&self, name: &str) -> bool
Checks if a class-like (class, interface, trait, or enum) exists (case-insensitive).
Sourcepub fn namespace_exists(&self, name: &str) -> bool
pub fn namespace_exists(&self, name: &str) -> bool
Checks if a namespace exists (case-insensitive).
Sourcepub fn class_or_trait_exists(&self, name: &str) -> bool
pub fn class_or_trait_exists(&self, name: &str) -> bool
Checks if a class or trait exists in the codebase (case-insensitive).
Sourcepub fn class_or_interface_exists(&self, name: &str) -> bool
pub fn class_or_interface_exists(&self, name: &str) -> bool
Checks if a class or interface exists in the codebase (case-insensitive).
Sourcepub fn method_identifier_exists(&self, method_id: &MethodIdentifier) -> bool
pub fn method_identifier_exists(&self, method_id: &MethodIdentifier) -> bool
Checks if a method identifier exists in the codebase.
Sourcepub fn function_exists(&self, name: &str) -> bool
pub fn function_exists(&self, name: &str) -> bool
Checks if a global function exists in the codebase (case-insensitive).
Sourcepub fn constant_exists(&self, name: &str) -> bool
pub fn constant_exists(&self, name: &str) -> bool
Checks if a global constant exists in the codebase. The namespace part is case-insensitive, but the constant name is case-sensitive.
Sourcepub fn method_exists(&self, class: &str, method: &str) -> bool
pub fn method_exists(&self, class: &str, method: &str) -> bool
Checks if a method exists on a class-like, including inherited methods (case-insensitive).
Sourcepub fn property_exists(&self, class: &str, property: &str) -> bool
pub fn property_exists(&self, class: &str, property: &str) -> bool
Checks if a property exists on a class-like, including inherited properties. Class name is case-insensitive, property name is case-sensitive.
Sourcepub fn class_constant_exists(&self, class: &str, constant: &str) -> bool
pub fn class_constant_exists(&self, class: &str, constant: &str) -> bool
Checks if a class constant or enum case exists on a class-like. Class name is case-insensitive, constant/case name is case-sensitive.
Sourcepub fn method_is_declared_in_class(&self, class: &str, method: &str) -> bool
pub fn method_is_declared_in_class(&self, class: &str, method: &str) -> bool
Checks if a method is declared directly in a class (not inherited).
Sourcepub fn property_is_declared_in_class(&self, class: &str, property: &str) -> bool
pub fn property_is_declared_in_class(&self, class: &str, property: &str) -> bool
Checks if a property is declared directly in a class (not inherited).
Sourcepub fn get_class(&self, name: &str) -> Option<&ClassLikeMetadata>
pub fn get_class(&self, name: &str) -> Option<&ClassLikeMetadata>
Retrieves metadata for a class (case-insensitive).
Returns None if the name doesn’t correspond to a class.
Sourcepub fn get_interface(&self, name: &str) -> Option<&ClassLikeMetadata>
pub fn get_interface(&self, name: &str) -> Option<&ClassLikeMetadata>
Retrieves metadata for an interface (case-insensitive).
Sourcepub fn get_trait(&self, name: &str) -> Option<&ClassLikeMetadata>
pub fn get_trait(&self, name: &str) -> Option<&ClassLikeMetadata>
Retrieves metadata for a trait (case-insensitive).
Sourcepub fn get_enum(&self, name: &str) -> Option<&ClassLikeMetadata>
pub fn get_enum(&self, name: &str) -> Option<&ClassLikeMetadata>
Retrieves metadata for an enum (case-insensitive).
Sourcepub fn get_class_like(&self, name: &str) -> Option<&ClassLikeMetadata>
pub fn get_class_like(&self, name: &str) -> Option<&ClassLikeMetadata>
Retrieves metadata for any class-like structure (case-insensitive).
Sourcepub fn get_function(&self, name: &str) -> Option<&FunctionLikeMetadata>
pub fn get_function(&self, name: &str) -> Option<&FunctionLikeMetadata>
Retrieves metadata for a global function (case-insensitive).
Sourcepub fn get_method(
&self,
class: &str,
method: &str,
) -> Option<&FunctionLikeMetadata>
pub fn get_method( &self, class: &str, method: &str, ) -> Option<&FunctionLikeMetadata>
Retrieves metadata for a method (case-insensitive for both class and method names).
Sourcepub fn get_closure(
&self,
file_id: &FileId,
position: &Position,
) -> Option<&FunctionLikeMetadata>
pub fn get_closure( &self, file_id: &FileId, position: &Position, ) -> Option<&FunctionLikeMetadata>
Retrieves metadata for a closure based on its file and position.
Sourcepub fn get_method_by_id(
&self,
method_id: &MethodIdentifier,
) -> Option<&FunctionLikeMetadata>
pub fn get_method_by_id( &self, method_id: &MethodIdentifier, ) -> Option<&FunctionLikeMetadata>
Retrieves method metadata by MethodIdentifier.
Sourcepub fn get_declaring_method(
&self,
class: &str,
method: &str,
) -> Option<&FunctionLikeMetadata>
pub fn get_declaring_method( &self, class: &str, method: &str, ) -> Option<&FunctionLikeMetadata>
Retrieves the declaring method metadata, following the inheritance chain. This finds where the method is actually implemented.
Sourcepub fn get_function_like(
&self,
identifier: &FunctionLikeIdentifier,
) -> Option<&FunctionLikeMetadata>
pub fn get_function_like( &self, identifier: &FunctionLikeIdentifier, ) -> Option<&FunctionLikeMetadata>
Retrieves metadata for any function-like construct (function, method, or closure). This is a convenience method that delegates to the appropriate getter based on the identifier type.
Sourcepub fn get_constant(&self, name: &str) -> Option<&ConstantMetadata>
pub fn get_constant(&self, name: &str) -> Option<&ConstantMetadata>
Retrieves metadata for a global constant. Namespace lookup is case-insensitive, constant name is case-sensitive.
Sourcepub fn get_class_constant(
&self,
class: &str,
constant: &str,
) -> Option<&ClassLikeConstantMetadata>
pub fn get_class_constant( &self, class: &str, constant: &str, ) -> Option<&ClassLikeConstantMetadata>
Retrieves metadata for a class constant. Class name is case-insensitive, constant name is case-sensitive.
Sourcepub fn get_enum_case(
&self,
class: &str,
case: &str,
) -> Option<&EnumCaseMetadata>
pub fn get_enum_case( &self, class: &str, case: &str, ) -> Option<&EnumCaseMetadata>
Retrieves metadata for an enum case.
Sourcepub fn get_property(
&self,
class: &str,
property: &str,
) -> Option<&PropertyMetadata>
pub fn get_property( &self, class: &str, property: &str, ) -> Option<&PropertyMetadata>
Retrieves metadata for a property directly from the class where it’s declared. Class name is case-insensitive, property name is case-sensitive.
Sourcepub fn get_declaring_property(
&self,
class: &str,
property: &str,
) -> Option<&PropertyMetadata>
pub fn get_declaring_property( &self, class: &str, property: &str, ) -> Option<&PropertyMetadata>
Retrieves the property metadata, potentially from a parent class if inherited.
Sourcepub fn get_property_type(&self, class: &str, property: &str) -> Option<&TUnion>
pub fn get_property_type(&self, class: &str, property: &str) -> Option<&TUnion>
Gets the type of a property, resolving it from the declaring class if needed.
Sourcepub fn get_class_constant_type<'a>(
&'a self,
class: &str,
constant: &str,
) -> Option<Cow<'a, TUnion>>
pub fn get_class_constant_type<'a>( &'a self, class: &str, constant: &str, ) -> Option<Cow<'a, TUnion>>
Gets the type of a class constant, considering both type hints and inferred types.
Sourcepub fn get_class_constant_literal_value(
&self,
class: &str,
constant: &str,
) -> Option<&TAtomic>
pub fn get_class_constant_literal_value( &self, class: &str, constant: &str, ) -> Option<&TAtomic>
Gets the literal value of a class constant if it was inferred.
Sourcepub fn class_extends(&self, child: &str, parent: &str) -> bool
pub fn class_extends(&self, child: &str, parent: &str) -> bool
Checks if a child class extends a parent class (case-insensitive).
Sourcepub fn class_directly_extends(&self, child: &str, parent: &str) -> bool
pub fn class_directly_extends(&self, child: &str, parent: &str) -> bool
Checks if a class directly extends a parent class (case-insensitive).
Sourcepub fn class_implements(&self, class: &str, interface: &str) -> bool
pub fn class_implements(&self, class: &str, interface: &str) -> bool
Checks if a class implements an interface (case-insensitive).
Sourcepub fn class_directly_implements(&self, class: &str, interface: &str) -> bool
pub fn class_directly_implements(&self, class: &str, interface: &str) -> bool
Checks if a class directly implements an interface (case-insensitive).
Sourcepub fn class_uses_trait(&self, class: &str, trait_name: &str) -> bool
pub fn class_uses_trait(&self, class: &str, trait_name: &str) -> bool
Checks if a class uses a trait (case-insensitive).
Sourcepub fn trait_requires_extends(&self, trait_name: &str, class_name: &str) -> bool
pub fn trait_requires_extends(&self, trait_name: &str, class_name: &str) -> bool
Checks if a trait has @require-extends for a class (case-insensitive).
Returns true if the trait requires extending the specified class or any of its parents.
Sourcepub fn is_instance_of(&self, child: &str, parent: &str) -> bool
pub fn is_instance_of(&self, child: &str, parent: &str) -> bool
Checks if child is an instance of parent (via extends or implements).
Sourcepub fn is_enum_or_final_class(&self, name: &str) -> bool
pub fn is_enum_or_final_class(&self, name: &str) -> bool
Checks if the given name is an enum or final class.
Sourcepub fn is_inheritable(&self, name: &str) -> bool
pub fn is_inheritable(&self, name: &str) -> bool
Checks if a class-like can be part of an intersection. Generally, only final classes and enums cannot be intersected.
Sourcepub fn get_class_descendants(&self, class: &str) -> AtomSet
pub fn get_class_descendants(&self, class: &str) -> AtomSet
Gets all descendants of a class (recursive).
Sourcepub fn get_class_ancestors(&self, class: &str) -> AtomSet
pub fn get_class_ancestors(&self, class: &str) -> AtomSet
Gets all ancestors of a class (parents + interfaces).
Sourcepub fn get_declaring_method_class(
&self,
class: &str,
method: &str,
) -> Option<Atom>
pub fn get_declaring_method_class( &self, class: &str, method: &str, ) -> Option<Atom>
Gets the class where a method is declared (following inheritance).
Sourcepub fn get_appearing_method_class(
&self,
class: &str,
method: &str,
) -> Option<Atom>
pub fn get_appearing_method_class( &self, class: &str, method: &str, ) -> Option<Atom>
Gets the class where a method appears (could be the declaring class or child class).
Sourcepub fn get_declaring_method_identifier(
&self,
method_id: &MethodIdentifier,
) -> MethodIdentifier
pub fn get_declaring_method_identifier( &self, method_id: &MethodIdentifier, ) -> MethodIdentifier
Gets the declaring method identifier for a method.
Sourcepub fn method_is_overriding(&self, class: &str, method: &str) -> bool
pub fn method_is_overriding(&self, class: &str, method: &str) -> bool
Checks if a method is overriding a parent method.
Sourcepub fn method_is_abstract(&self, class: &str, method: &str) -> bool
pub fn method_is_abstract(&self, class: &str, method: &str) -> bool
Checks if a method is abstract.
Sourcepub fn method_is_static(&self, class: &str, method: &str) -> bool
pub fn method_is_static(&self, class: &str, method: &str) -> bool
Checks if a method is static.
Sourcepub fn method_is_final(&self, class: &str, method: &str) -> bool
pub fn method_is_final(&self, class: &str, method: &str) -> bool
Checks if a method is final.
Sourcepub fn get_method_visibility(
&self,
class: &str,
method: &str,
) -> Option<Visibility>
pub fn get_method_visibility( &self, class: &str, method: &str, ) -> Option<Visibility>
Gets the effective visibility of a method, taking into account trait alias visibility overrides.
When a trait method is aliased with a visibility modifier (e.g., use Trait { method as public aliasedMethod; }),
the visibility is stored in the class’s trait_visibility_map. This method checks that map first,
then falls back to the method’s declared visibility.
Sourcepub fn get_function_like_thrown_types<'a>(
&'a self,
class_like: Option<&'a ClassLikeMetadata>,
function_like: &'a FunctionLikeMetadata,
) -> &'a [TypeMetadata]
pub fn get_function_like_thrown_types<'a>( &'a self, class_like: Option<&'a ClassLikeMetadata>, function_like: &'a FunctionLikeMetadata, ) -> &'a [TypeMetadata]
Gets thrown types for a function-like, including inherited throws.
Sourcepub fn get_declaring_property_class(
&self,
class: &str,
property: &str,
) -> Option<Atom>
pub fn get_declaring_property_class( &self, class: &str, property: &str, ) -> Option<Atom>
Gets the class where a property is declared.
Sourcepub fn get_appearing_property_class(
&self,
class: &str,
property: &str,
) -> Option<Atom>
pub fn get_appearing_property_class( &self, class: &str, property: &str, ) -> Option<Atom>
Gets the class where a property appears.
Sourcepub fn get_all_descendants(&self, class: &str) -> AtomSet
pub fn get_all_descendants(&self, class: &str) -> AtomSet
Gets all descendants of a class (recursive).
Sourcepub fn get_anonymous_class_name(span: Span) -> Atom
pub fn get_anonymous_class_name(span: Span) -> Atom
Generates a unique name for an anonymous class based on its span.
Sourcepub fn get_anonymous_class(&self, span: Span) -> Option<&ClassLikeMetadata>
pub fn get_anonymous_class(&self, span: Span) -> Option<&ClassLikeMetadata>
Retrieves the metadata for an anonymous class based on its span.
Sourcepub fn get_file_signature(&self, file_id: &FileId) -> Option<&FileSignature>
pub fn get_file_signature(&self, file_id: &FileId) -> Option<&FileSignature>
Sourcepub fn set_file_signature(
&mut self,
file_id: FileId,
signature: FileSignature,
) -> Option<FileSignature>
pub fn set_file_signature( &mut self, file_id: FileId, signature: FileSignature, ) -> Option<FileSignature>
Sourcepub fn remove_file_signature(
&mut self,
file_id: &FileId,
) -> Option<FileSignature>
pub fn remove_file_signature( &mut self, file_id: &FileId, ) -> Option<FileSignature>
Sourcepub fn extend(&mut self, other: CodebaseMetadata)
pub fn extend(&mut self, other: CodebaseMetadata)
Merges information from another CodebaseMetadata into this one.
When both metadata have the same priority, the one with the smaller span is kept for deterministic results regardless of scan order.
Sourcepub fn take_issues(&mut self, user_defined: bool) -> IssueCollection
pub fn take_issues(&mut self, user_defined: bool) -> IssueCollection
Takes all issues from the codebase metadata.
Sourcepub fn get_all_file_ids(&self) -> Vec<FileId>
pub fn get_all_file_ids(&self) -> Vec<FileId>
Gets all file IDs that have signatures in this metadata.
This is a helper method for incremental analysis to iterate over all files.
Trait Implementations§
Source§impl Clone for CodebaseMetadata
impl Clone for CodebaseMetadata
Source§fn clone(&self) -> CodebaseMetadata
fn clone(&self) -> CodebaseMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CodebaseMetadata
impl Debug for CodebaseMetadata
Source§impl Default for CodebaseMetadata
impl Default for CodebaseMetadata
Source§impl<'de> Deserialize<'de> for CodebaseMetadata
impl<'de> Deserialize<'de> for CodebaseMetadata
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CodebaseMetadata
impl PartialEq for CodebaseMetadata
Source§impl Serialize for CodebaseMetadata
impl Serialize for CodebaseMetadata
impl StructuralPartialEq for CodebaseMetadata
Auto Trait Implementations§
impl Freeze for CodebaseMetadata
impl RefUnwindSafe for CodebaseMetadata
impl Send for CodebaseMetadata
impl Sync for CodebaseMetadata
impl Unpin for CodebaseMetadata
impl UnwindSafe for CodebaseMetadata
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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>
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);