Skip to main content

TokenConsumers

Struct TokenConsumers 

Source
pub struct TokenConsumers {
    pub token: String,
    pub namespace: String,
    pub definition_path: String,
    pub definition_line: u32,
    pub consumer_count: u32,
    pub consumers: Vec<TokenConsumerLocation>,
}
Expand description

A location-aware reverse index of where one design token is consumed, so an agent editing the token can see its blast radius before changing or removing it. Covers TWO token origins. The always-available discriminator is the token SHAPE: a Tailwind token is the ---prefixed custom property (--color-brand), a CSS-in-JS token is a dotted access path with no -- prefix (vars.color.primary). The per-consumer kind also discriminates origin, but only when consumer_count > 0 (a consumer_count: 0 entry has an empty consumers array and thus no kind), so branch on the token prefix for the zero-consumer case. The two origins:

  • Tailwind v4 @theme tokens (kinds theme-var / css-var / utility / apply), built from the same gated candidate set as unused_theme_tokens (v4 + non-plugin + non-published + whole-scope), so a consumer_count: 0 corroborates the unused_theme_tokens “nothing consumes this” finding.
  • CSS-in-JS tokens (kind js-member / js-call) from StyleX defineVars / unstable_defineVarsNested, vanilla-extract createTheme family definitions, and PandaCSS defineTokens, consumed via same-file or cross-module member access, StyleX theme-group calls, or PandaCSS token('...') calls. NOTE: CSS-in-JS has NO corroborating dead-token finding (there is no unused_theme_tokens analogue), so a CSS-in-JS consumer_count: 0 is a weaker signal than the Tailwind case (and unresolved dynamic imports or computed accesses are not counted).

This is DESCRIPTIVE context (a blast-radius lookup), not a finding, so it deliberately carries no actions array (unlike the cleanup-candidate types in this module). consumer_count is always a STATIC lower bound (a computed class name like bg-${color}, or a CSS-in-JS access through an unresolved alias import, is not counted).

Fields§

§token: String

The token identity. For a Tailwind @theme token this is the full custom property as authored, INCLUDING the -- prefix (--color-brand). For a CSS-in-JS token (kind js-member / js-call) this is the binding-qualified dotted access path, NO -- prefix (vars.color.primary), matching how consumers read it. The presence of the -- prefix distinguishes the two origins.

§namespace: String

For a Tailwind token, the v4 theme namespace (color, radius, font-weight, …). For a CSS-in-JS token (kind js-member / js-call), the defining export BINDING the token set is accessed through (vars), which identifies the token set, NOT a semantic group. (The field is thus overloaded by origin; branch on consumers[].kind or the token shape.)

§definition_path: String

Project-root-relative, forward-slash path to the declaring stylesheet (Tailwind) or the JS/TS token-definition file (CSS-in-JS).

§definition_line: u32

1-based line of the token’s definition (inside the @theme block for Tailwind; the token key inside the defineVars/createTheme object for CSS-in-JS).

§consumer_count: u32

The FULL number of consumer locations found, a STATIC LOWER BOUND: a computed class name (bg-${color}), unresolved import, dynamic token structure, or computed CSS-in-JS access is not counted. This is the aggregate over every consumer, computed BEFORE consumers is capped to a sample.

§consumers: Vec<TokenConsumerLocation>

A capped, deterministically-sorted sample of consumer locations (at most TOKEN_CONSUMER_SAMPLE_CAP). The full count lives in consumer_count; use this list to jump to representative consumers, not to enumerate every one.

Trait Implementations§

Source§

impl Clone for TokenConsumers

Source§

fn clone(&self) -> Self

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 TokenConsumers

Source§

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

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

impl<'de> Deserialize<'de> for TokenConsumers

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 Serialize for TokenConsumers

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

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

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

Source§

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

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
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<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
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, !>

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