Skip to main content

IssueKind

Enum IssueKind 

Source
pub enum IssueKind {
Show 47 variants UnusedFile, UnusedExport, UnusedType, PrivateTypeLeak, UnusedDependency, UnusedDevDependency, UnusedEnumMember, UnusedClassMember, UnresolvedImport, UnlistedDependency, DuplicateExport, CodeDuplication, CircularDependency, ReExportCycle, TypeOnlyDependency, TestOnlyDependency, BoundaryViolation, CoverageGaps, FeatureFlag, Complexity, StaleSuppression, PnpmCatalogEntry, EmptyCatalogGroup, UnresolvedCatalogReference, UnusedDependencyOverride, MisconfiguredDependencyOverride, SecurityClientServerLeak, SecuritySink, PolicyViolation, InvalidClientExport, MixedClientServerBarrel, MisplacedDirective, UnusedStoreMember, UnprovidedInject, RouteCollision, DynamicSegmentNameConflict, UnrenderedComponent, UnusedComponentProp, UnusedComponentEmit, UnusedComponentInput, UnusedComponentOutput, UnusedServerAction, UnusedLoadDataKey, PropDrilling, ThinWrapper, DuplicatePropShape, UnusedSvelteEvent,
}
Expand description

Issue kind for suppression matching.

§Examples

use fallow_types::suppress::IssueKind;

let kind = IssueKind::parse("unused-export");
assert_eq!(kind, Some(IssueKind::UnusedExport));

// Round-trip through discriminant
let d = IssueKind::UnusedFile.to_discriminant();
assert_eq!(IssueKind::from_discriminant(d), Some(IssueKind::UnusedFile));

// Unknown strings return None
assert_eq!(IssueKind::parse("not-a-kind"), None);

Variants§

§

UnusedFile

An unused file.

§

UnusedExport

An unused export.

§

UnusedType

An unused type export.

§

PrivateTypeLeak

An exported signature that references a same-file private type.

§

UnusedDependency

An unused dependency.

§

UnusedDevDependency

An unused dev dependency.

§

UnusedEnumMember

An unused enum member.

§

UnusedClassMember

An unused class member.

§

UnresolvedImport

An unresolved import.

§

UnlistedDependency

An unlisted dependency.

§

DuplicateExport

A duplicate export name across modules.

§

CodeDuplication

Code duplication.

§

CircularDependency

A circular dependency chain.

§

ReExportCycle

A cycle or self-loop in the re-export edge subgraph (barrel files re-exporting from each other in a loop). Structurally always a bug: chain propagation through the cycle is a no-op.

§

TypeOnlyDependency

A production dependency only imported via type-only imports.

§

TestOnlyDependency

A production dependency only imported by test files.

§

BoundaryViolation

An import that crosses an architecture boundary.

§

CoverageGaps

A runtime file or export with no test dependency path.

§

FeatureFlag

A detected feature flag pattern.

§

Complexity

A function exceeding complexity thresholds (health command).

§

StaleSuppression

A suppression comment or JSDoc tag that no longer matches any issue.

§

PnpmCatalogEntry

A pnpm catalog entry in pnpm-workspace.yaml not referenced by any workspace package.

§

EmptyCatalogGroup

A named pnpm catalog group in pnpm-workspace.yaml with no entries.

§

UnresolvedCatalogReference

A workspace package.json reference (catalog: / catalog:<name>) pointing at a catalog that does not declare the consumed package.

§

UnusedDependencyOverride

An entry in pnpm’s overrides: / pnpm.overrides whose target package is not declared in any workspace package.json.

§

MisconfiguredDependencyOverride

An entry in pnpm’s overrides: / pnpm.overrides whose key or value cannot be parsed into a valid pnpm shape.

§

SecurityClientServerLeak

A "use client" file that transitively imports a module reading a non-public process.env secret (security candidate).

§

SecuritySink

A syntactic tainted-sink candidate matched against the data-driven security matcher catalogue (security_matchers.toml). ONE suppression token covers all catalogue categories.

§

PolicyViolation

A banned call or banned import matched by a declarative rule pack (rulePacks config). The bare token covers every pack rule; scoped tokens can target one <pack>/<rule-id> identity.

§

InvalidClientExport

A "use client" file that exports a Next.js server-only / route-segment config name (e.g. metadata, revalidate, GET).

§

MixedClientServerBarrel

A barrel file that re-exports BOTH a "use client" origin module AND a server-only origin module (Next.js App Router footgun: one import drags the other’s directive context across the boundary).

§

MisplacedDirective

A "use client" / "use server" directive string written as an expression statement after a non-directive statement (an import, a const). It is no longer in the leading prologue, so the RSC bundler parses it as an ordinary string and silently ignores it.

§

UnusedStoreMember

A store member (Pinia state / getters / actions key, or a setup-store returned key) declared but never accessed by any consumer project-wide. Cross-graph: the store binding is imported (the module is reachable) yet a specific member is dead.

§

UnprovidedInject

A Vue inject(KEY) or Svelte getContext(KEY) whose symbol KEY is provide/setContext’d nowhere in the analyzed project. Cross-graph dead-half DI link: at runtime the inject returns undefined.

§

RouteCollision

Two or more Next.js App Router route files that resolve to the same URL within one app-root (a guaranteed next build failure).

§

DynamicSegmentNameConflict

Sibling Next.js dynamic route segments at one tree position using different param spellings ([id] vs [slug]; a dev / runtime error that next build does NOT catch).

§

UnrenderedComponent

A component defined in the project that is exported but never rendered (no JSX usage) anywhere across the analyzed project.

§

UnusedComponentProp

A Vue <script setup> defineProps declared prop that is referenced NOWHERE inside its own single-file component (neither <script> nor <template>). Single-file dead-input direction.

§

UnusedComponentEmit

A Vue <script setup> defineEmits declared event that is EMITTED nowhere inside its own single-file component (no emit('<name>') call). Single-file dead-input direction.

§

UnusedComponentInput

An Angular @Input() / signal input() / model() declared input that is read NOWHERE inside its own component (neither the inline/external template nor the class body). Single-file dead-input direction; the Angular analogue of unused-component-prop.

§

UnusedComponentOutput

An Angular @Output() / signal output() declared output that is EMITTED nowhere inside its own component (no this.<output>.emit(...)). Single-file dead-output direction; the Angular analogue of unused-component-emit.

§

UnusedServerAction

A Next.js Server Action (an export of a "use server" file) that no code in the project references (no import-and-call, no action={fn} binding, no <form action={fn}>). Cross-graph dead-export direction, reclassified from unused-export for "use server" files.

§

UnusedLoadDataKey

A SvelteKit +page.{ts,server.ts,js,server.js} load() return-object key that no consumer reads: not off the sibling +page.svelte’s data.<key>, nor project-wide via page.data.<key> / $page.data.<key>. A dead load key runs a real server/DB fetch cost for data nothing renders.

§

PropDrilling

A React/Preact prop forwarded unchanged through >= N intermediate pass-through components until a component that substantively consumes it. Health signal, rule defaults to off (opt-in). Cross-graph: the chain spans multiple components / files.

§

ThinWrapper

A React/Preact component whose entire body is return <Child {...props}/> (a single spread-forwarded child render, no own value-add): pure structural indirection, a candidate for inlining. Health signal, rule defaults to off (opt-in).

§

DuplicatePropShape

Three or more React/Preact components across two or more files whose statically-harvested prop NAME set is identical after stripping ubiquitous DOM / passthrough names (a missing shared Props type). Health signal, rule defaults to off (opt-in). Cross-graph: the group spans multiple components / files.

§

UnusedSvelteEvent

A Svelte component dispatching a custom event via createEventDispatcher() whose event name is listened to NOWHERE in the analyzed project. Cross-file dead-output direction: the component fires an event nothing handles.

Implementations§

Source§

impl IssueKind

Source

pub fn parse(s: &str) -> Option<Self>

Parse an issue kind from the string tokens used in CLI output and suppression comments.

Source

pub const fn to_discriminant(self) -> u8

Convert to a u8 discriminant for compact cache storage.

Source

pub const fn from_discriminant(d: u8) -> Option<Self>

Reconstruct from a cache discriminant.

Trait Implementations§

Source§

impl Clone for IssueKind

Source§

fn clone(&self) -> IssueKind

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 Copy for IssueKind

Source§

impl Debug for IssueKind

Source§

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

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

impl Eq for IssueKind

Source§

impl PartialEq for IssueKind

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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 StructuralPartialEq for IssueKind

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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

Checks if this value is equivalent to the given key. Read more
Source§

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

Source§

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

Checks if this value is equivalent to the given key. Read more
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<'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, 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<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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 = Infallible

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.