Skip to main content

SymbolReferences

Struct SymbolReferences 

Source
pub struct SymbolReferences { /* private fields */ }
Expand description

Stores various maps tracking references between symbols (classes, functions, etc.) and class-like members (methods, properties, constants, etc.) within the codebase.

This is primarily used for dependency analysis, understanding code structure, and potentially for tasks like dead code detection or impact analysis.

Implementations§

Source§

impl SymbolReferences

Source

pub fn new() -> Self

Creates a new, empty SymbolReferences collection.

Source

pub fn is_empty(&self) -> bool

Returns whether no references of any kind are recorded.

Source

pub fn count_body_references(&self) -> usize

Counts the total number of body references from symbols and files.

Source

pub fn count_signature_references(&self) -> usize

Counts the total number of signature references from symbols and files.

Source

pub fn total_map_entries(&self) -> usize

Returns the total number of map entries (keys) across all reference maps. Useful for memory auditing — this count should remain stable across cycles in a long-running process.

Source

pub fn count_referencing_symbols( &self, symbol: &SymbolIdentifier, in_signature: bool, ) -> usize

Counts how many symbols reference the given symbol.

§Arguments
  • symbol - The symbol to check references to
  • in_signature - If true, count signature references; if false, count body references
§Returns

The number of symbols that reference the given symbol

Source

pub fn count_property_reads(&self, property: &SymbolIdentifier) -> usize

Counts how many symbols have a read reference to the given property.

§Arguments
  • property - The property symbol identifier (ClassName, PropertyName) to check
§Returns

The number of symbols that read the given property

Source

pub fn count_property_writes(&self, property: &SymbolIdentifier) -> usize

Counts how many symbols have a write reference to the given property.

§Arguments
  • property - The property symbol identifier (ClassName, PropertyName) to check
§Returns

The number of symbols that write to the given property

Source

pub fn add_symbol_reference_to_class_member( &mut self, referencing_symbol: Word, class_member: SymbolIdentifier, in_signature: bool, )

Records that a top-level symbol (e.g., a function) references a class member.

Automatically adds a reference from the referencing symbol to the member’s class.

§Arguments
  • referencing_symbol: The FQN of the function or global const making the reference.
  • class_member: A tuple (ClassName, MemberName) being referenced.
  • in_signature: true if the reference occurs in a signature context, false if in the body.
Source

pub fn add_symbol_reference_to_symbol( &mut self, referencing_symbol: Word, symbol: Word, in_signature: bool, )

Records that a top-level symbol references another top-level symbol.

Skips self-references. Skips body references if already referenced in signature.

§Arguments
  • referencing_symbol: The FQN of the symbol making the reference.
  • symbol: The FQN of the symbol being referenced.
  • in_signature: true if the reference occurs in a signature context, false if in the body.
Source

pub fn add_symbol_reference( &mut self, referencing: SymbolIdentifier, referenced: SymbolIdentifier, in_signature: bool, )

Records a reference between arbitrary top-level symbols or class-like members.

Source

pub fn add_reference( &mut self, referencing: ReferenceOrigin, referenced: SymbolIdentifier, in_signature: bool, )

Records a body or signature reference from a symbol/member or file origin.

Source

pub fn add_property_read_reference( &mut self, referencing: ReferenceOrigin, property: SymbolIdentifier, )

Records a property read from an explicit symbol, member, or file source.

Source

pub fn add_property_write_reference( &mut self, referencing: ReferenceOrigin, property: SymbolIdentifier, )

Records a property write from an explicit symbol, member, or file source.

Source

pub fn add_overridden_member_reference( &mut self, referencing: SymbolIdentifier, overridden: SymbolIdentifier, )

Records an explicit reference to an overridden class-like member.

Source

pub fn add_functionlike_return_reference( &mut self, referencing: SymbolIdentifier, referenced: SymbolIdentifier, )

Records an explicit use of another function-like’s return value.

Source

pub fn add_class_member_reference_to_class_member( &mut self, referencing_class_member: SymbolIdentifier, class_member: SymbolIdentifier, in_signature: bool, )

Records that a class member references another class member.

Automatically adds references from the referencing member’s class to the referenced member’s class, and from the referencing member to the referenced member’s class. Skips self-references.

§Arguments
  • referencing_class_member: Tuple (ClassName, MemberName) making the reference.
  • class_member: Tuple (ClassName, MemberName) being referenced.
  • in_signature: true if the reference occurs in a signature context, false if in the body.
Source

pub fn add_class_member_reference_to_symbol( &mut self, referencing_class_member: SymbolIdentifier, symbol: Word, in_signature: bool, )

Records that a class member references a top-level symbol.

Automatically adds a reference from the referencing member’s class to the referenced symbol. Skips references to the member’s own class. Skips body references if already referenced in signature.

§Arguments
  • referencing_class_member: Tuple (ClassName, MemberName) making the reference.
  • symbol: The FQN of the symbol being referenced.
  • in_signature: true if the reference occurs in a signature context, false if in the body.
Source

pub fn add_file_reference_to_class_member( &mut self, file_name: Word, class_member: SymbolIdentifier, in_signature: bool, )

Adds a file-level reference to a symbol or class-like member.

Member references also imply a reference to their containing class-like symbol.

Source

pub fn add_reference_to_class_member( &mut self, scope: &ScopeContext<'_>, class_member: SymbolIdentifier, in_signature: bool, )

Convenience method to add a reference from the current function context to a class member. Delegates to appropriate add_* methods based on the function context.

Source

pub fn add_reference_for_method_call( &mut self, scope: &ScopeContext<'_>, method: &MethodIdentifier, )

Source

pub fn add_reference_for_property_read( &mut self, scope: &ScopeContext<'_>, class_name: Word, property_name: Word, )

Records a read reference to a property (e.g., $this->prop used as a value).

Source

pub fn add_reference_for_property_write( &mut self, scope: &ScopeContext<'_>, class_name: Word, property_name: Word, )

Records a write reference to a property (e.g., $this->prop = value). This is tracked separately from read references to enable write-only property detection.

Source

pub fn add_reference_to_overridden_class_member( &mut self, scope: &ScopeContext<'_>, class_member: SymbolIdentifier, )

Convenience method to add a reference from the current function context to an overridden class member (e.g., parent::foo). Delegates based on the function context.

Source

pub fn add_reference_to_symbol( &mut self, scope: &ScopeContext<'_>, symbol: Word, in_signature: bool, )

Convenience method to add a reference from the current function context to a top-level symbol. Delegates to appropriate add_* methods based on the function context.

Source

pub fn add_reference_to_functionlike_return( &mut self, referencing_functionlike: FunctionLikeIdentifier, referenced_functionlike: FunctionLikeIdentifier, )

Records that one function/method references the return value of another. Used for dead code analysis.

Source

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

Merges references from another SymbolReferences instance into this one. Existing references are extended, not replaced.

Source

pub fn for_each_reference( &self, visit: impl FnMut(ReferenceOrigin, SymbolIdentifier, SymbolReferenceKind), )

Visits every recorded reference without materializing a copy of the graph.

Source

pub fn get_references_to_symbol( &self, target_symbol: SymbolIdentifier, ) -> HashSet<&SymbolIdentifier>

Finds all symbols/members that reference a specific target symbol/member. Checks both body and signature references.

§Arguments
  • target_symbol: The (SymbolName, MemberName) tuple being referenced.
§Returns

A HashSet containing &(RefSymbol, RefMember) tuples of all items referencing the target.

Source

pub fn has_file_reference_to_symbol( &self, target_symbol: SymbolIdentifier, ) -> bool

Returns whether a body or signature reference to a symbol originates from top-level file code.

Source

pub fn get_invalid_symbols( &self, codebase_diff: &CodebaseDiff, ) -> Option<(HashSet<SymbolIdentifier>, WordSet, WordSet)>

Calculates sets of invalid symbols and members based on detected code changes (CodebaseDiff). Propagates invalidation through the dependency graph stored in signature references. Limits propagation expense to avoid excessive computation on large changes.

§Arguments
  • codebase_diff: Information about added, deleted, or modified symbols/signatures.
§Returns

Some((invalid_signatures, partially_invalid, invalid_files)) on success, where invalid_signatures contains all symbol/member pairs whose signature is invalid (including propagated ones), and partially_invalid contains symbols with at least one invalid member. invalid_files contains logical file names whose top-level code references a symbol with an invalid signature. Returns None if the propagation exceeds an expense limit (currently 5000 steps).

Source

pub fn restore_references_for_safe_symbols( &mut self, previous: &SymbolReferences, safe_symbols: &WordSet, safe_symbol_members: &HashSet<SymbolIdentifier>, )

Extracts references originating from safe (skipped) symbols and merges them into this instance.

When incremental analysis runs with diff = true, the analyzer skips safe symbols, which means their body references are not collected. This method copies those missing references from the previous run’s reference graph.

Only references from symbols that are in safe_symbols or safe_symbol_members (and not already present in this instance) are copied.

§Arguments
  • previous - The previous run’s complete symbol references
  • safe_symbols - Set of safe top-level symbol names
  • safe_symbol_members - Set of safe (symbol, member) pairs
Source

pub fn remove_body_references_for_symbols( &mut self, symbols_and_members: &HashSet<SymbolIdentifier>, file_names: &[Word], )

Removes body references originating from the given symbols/members.

Used by the body-only fast path: when only function/method bodies changed (no signature changes), we remove old body references and let the analyzer rebuild them fresh. Signature references are kept because signatures didn’t change.

Also removes function-like return references and property read/write references from the given symbols, as those originate from body code.

File-level references keyed by the given file names are also removed.

Source

pub fn remove_references_from_files(&mut self, file_names: &WordSet)

Removes every reference originating from the given files.

Used when files are fully reanalyzed after a signature change. Both body and signature references must be rebuilt because either may have changed.

Source

pub fn retain_references_from_files(&mut self, file_names: &WordSet)

Removes references whose source files no longer exist in the current codebase.

Source

pub fn remove_references_from_invalid_symbols( &mut self, invalid_symbols_and_members: &HashSet<SymbolIdentifier>, )

Removes all references originating from symbols/members that are marked as invalid.

§Arguments
  • invalid_symbols_and_members: A set containing (SymbolName, MemberName) tuples for invalid items.
Source

pub fn retain_safe_symbol_references( &mut self, safe_symbols: &WordSet, safe_symbol_members: &HashSet<SymbolIdentifier>, )

Retains only references originating from safe (unchanged) symbols, removing all others.

This is the inverse of [remove_references_from_invalid_symbols]: instead of specifying what to remove, you specify what to keep. References from non-safe symbols will be rebuilt by populate_codebase and the analyzer.

This method also retains all builtin/prelude references (those where the key symbol is not user-defined, i.e., is in the base references).

Source

pub fn remove_dirty_symbol_references( &mut self, dirty_symbols: &HashSet<SymbolIdentifier>, )

Removes references for dirty (non-safe) symbols — O(dirty) instead of O(all).

This is the inverse of [retain_safe_symbol_references]: instead of iterating all entries and keeping safe ones, it directly removes entries for the given dirty set. Much faster when the dirty set is small relative to the total number of references.

Trait Implementations§

Source§

impl Clone for SymbolReferences

Source§

fn clone(&self) -> SymbolReferences

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SymbolReferences

Source§

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

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

impl Default for SymbolReferences

Source§

fn default() -> SymbolReferences

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

impl Eq for SymbolReferences

Source§

impl PartialEq for SymbolReferences

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SymbolReferences

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

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

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

Source§

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

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

Source§

type Error = !

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

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

Performs the conversion.
Source§

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

Source§

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

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

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