CodebaseMetadata

Struct CodebaseMetadata 

Source
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§

§infer_types_from_usage: bool

Configuration 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: Symbols

Stores 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: AtomSet

Set 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

Source

pub fn new() -> Self

Creates a new, empty CodebaseMetadata with default values.

Source

pub fn class_exists(&self, name: &str) -> bool

Checks if a class exists in the codebase (case-insensitive).

§Examples
if codebase.class_exists("MyClass") {
    // MyClass is a class
}
Source

pub fn interface_exists(&self, name: &str) -> bool

Checks if an interface exists in the codebase (case-insensitive).

Source

pub fn trait_exists(&self, name: &str) -> bool

Checks if a trait exists in the codebase (case-insensitive).

Source

pub fn enum_exists(&self, name: &str) -> bool

Checks if an enum exists in the codebase (case-insensitive).

Source

pub fn class_like_exists(&self, name: &str) -> bool

Checks if a class-like (class, interface, trait, or enum) exists (case-insensitive).

Source

pub fn class_or_trait_exists(&self, name: &str) -> bool

Checks if a class or trait exists in the codebase (case-insensitive).

Source

pub fn class_or_interface_exists(&self, name: &str) -> bool

Checks if a class or interface exists in the codebase (case-insensitive).

Source

pub fn method_identifier_exists(&self, method_id: &MethodIdentifier) -> bool

Checks if a method identifier exists in the codebase.

Source

pub fn function_exists(&self, name: &str) -> bool

Checks if a global function exists in the codebase (case-insensitive).

Source

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.

Source

pub fn method_exists(&self, class: &str, method: &str) -> bool

Checks if a method exists on a class-like, including inherited methods (case-insensitive).

Source

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.

Source

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.

Source

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).

Source

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).

Source

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.

Source

pub fn get_interface(&self, name: &str) -> Option<&ClassLikeMetadata>

Retrieves metadata for an interface (case-insensitive).

Source

pub fn get_trait(&self, name: &str) -> Option<&ClassLikeMetadata>

Retrieves metadata for a trait (case-insensitive).

Source

pub fn get_enum(&self, name: &str) -> Option<&ClassLikeMetadata>

Retrieves metadata for an enum (case-insensitive).

Source

pub fn get_class_like(&self, name: &str) -> Option<&ClassLikeMetadata>

Retrieves metadata for any class-like structure (case-insensitive).

Source

pub fn get_function(&self, name: &str) -> Option<&FunctionLikeMetadata>

Retrieves metadata for a global function (case-insensitive).

Source

pub fn get_method( &self, class: &str, method: &str, ) -> Option<&FunctionLikeMetadata>

Retrieves metadata for a method (case-insensitive for both class and method names).

Source

pub fn get_closure( &self, file_id: &FileId, position: &Position, ) -> Option<&FunctionLikeMetadata>

Retrieves metadata for a closure based on its file and position.

Source

pub fn get_method_by_id( &self, method_id: &MethodIdentifier, ) -> Option<&FunctionLikeMetadata>

Retrieves method metadata by MethodIdentifier.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn get_enum_case( &self, class: &str, case: &str, ) -> Option<&EnumCaseMetadata>

Retrieves metadata for an enum case.

Source

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.

Source

pub fn get_declaring_property( &self, class: &str, property: &str, ) -> Option<&PropertyMetadata>

Retrieves the property metadata, potentially from a parent class if inherited.

Source

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.

Source

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.

Source

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.

Source

pub fn class_extends(&self, child: &str, parent: &str) -> bool

Checks if a child class extends a parent class (case-insensitive).

Source

pub fn class_directly_extends(&self, child: &str, parent: &str) -> bool

Checks if a class directly extends a parent class (case-insensitive).

Source

pub fn class_implements(&self, class: &str, interface: &str) -> bool

Checks if a class implements an interface (case-insensitive).

Source

pub fn class_directly_implements(&self, class: &str, interface: &str) -> bool

Checks if a class directly implements an interface (case-insensitive).

Source

pub fn class_uses_trait(&self, class: &str, trait_name: &str) -> bool

Checks if a class uses a trait (case-insensitive).

Source

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.

Source

pub fn is_instance_of(&self, child: &str, parent: &str) -> bool

Checks if child is an instance of parent (via extends or implements).

Source

pub fn is_enum_or_final_class(&self, name: &str) -> bool

Checks if the given name is an enum or final class.

Source

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.

Source

pub fn get_class_descendants(&self, class: &str) -> AtomSet

Gets all descendants of a class (recursive).

Source

pub fn get_class_ancestors(&self, class: &str) -> AtomSet

Gets all ancestors of a class (parents + interfaces).

Source

pub fn get_declaring_method_class( &self, class: &str, method: &str, ) -> Option<Atom>

Gets the class where a method is declared (following inheritance).

Source

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).

Source

pub fn get_declaring_method_identifier( &self, method_id: &MethodIdentifier, ) -> MethodIdentifier

Gets the declaring method identifier for a method.

Source

pub fn method_is_overriding(&self, class: &str, method: &str) -> bool

Checks if a method is overriding a parent method.

Source

pub fn method_is_abstract(&self, class: &str, method: &str) -> bool

Checks if a method is abstract.

Source

pub fn method_is_static(&self, class: &str, method: &str) -> bool

Checks if a method is static.

Source

pub fn method_is_final(&self, class: &str, method: &str) -> bool

Checks if a method is final.

Source

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.

Source

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.

Source

pub fn get_declaring_property_class( &self, class: &str, property: &str, ) -> Option<Atom>

Gets the class where a property is declared.

Source

pub fn get_appearing_property_class( &self, class: &str, property: &str, ) -> Option<Atom>

Gets the class where a property appears.

Source

pub fn get_all_descendants(&self, class: &str) -> AtomSet

Gets all descendants of a class (recursive).

Source

pub fn get_anonymous_class_name(span: Span) -> Atom

Generates a unique name for an anonymous class based on its span.

Source

pub fn get_anonymous_class(&self, span: Span) -> Option<&ClassLikeMetadata>

Retrieves the metadata for an anonymous class based on its span.

Source

pub fn get_file_signature(&self, file_id: &FileId) -> Option<&FileSignature>

Gets the file signature for a given file ID.

§Arguments
  • file_id - The file identifier
§Returns

A reference to the FileSignature if it exists, or None if the file has no signature.

Source

pub fn set_file_signature( &mut self, file_id: FileId, signature: FileSignature, ) -> Option<FileSignature>

Adds or updates a file signature for a given file ID.

§Arguments
  • file_id - The file identifier
  • signature - The file signature
§Returns

The previous FileSignature if it existed.

Source

pub fn remove_file_signature( &mut self, file_id: &FileId, ) -> Option<FileSignature>

Removes the file signature for a given file ID.

§Arguments
  • file_id - The file identifier
§Returns

The removed FileSignature if it existed.

Source

pub fn extend(&mut self, other: CodebaseMetadata)

Merges information from another CodebaseMetadata into this one.

Source

pub fn take_issues(&mut self, user_defined: bool) -> IssueCollection

Takes all issues from the codebase metadata.

Source

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

Source§

fn clone(&self) -> CodebaseMetadata

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CodebaseMetadata

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CodebaseMetadata

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for CodebaseMetadata

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for CodebaseMetadata

Source§

fn eq(&self, other: &CodebaseMetadata) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for CodebaseMetadata

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for CodebaseMetadata

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Paint for T
where T: ?Sized,

Source§

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 primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
Source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
Source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
Source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
Source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
Source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
Source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
Source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
Source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
Source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
Source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
Source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
Source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
Source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
Source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
Source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
Source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
Source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
Source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
Source§

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>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
Source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
Source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
Source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
Source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
Source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
Source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
Source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
Source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
Source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
Source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
Source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
Source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
Source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
Source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
Source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
Source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
Source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
Source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
Source§

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 bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
Source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
Source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
Source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
Source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
Source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
Source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
Source§

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 mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
Source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
Source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
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.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
Source§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
Source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
Source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
Source§

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);
Source§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new Painted with a default Style. Read more
Source§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

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