Skip to main content

FunctionComplexity

Struct FunctionComplexity 

Source
pub struct FunctionComplexity {
Show 13 fields pub name: String, pub is_private_member: bool, pub line: u32, pub col: u32, pub cyclomatic: u16, pub cognitive: u16, pub line_count: u32, pub param_count: u8, pub react_hook_count: u16, pub react_jsx_max_depth: u16, pub react_prop_count: u16, pub source_hash: Option<String>, pub contributions: Vec<ComplexityContribution>,
}
Expand description

Complexity metrics for a single function/method/arrow.

Fields§

§name: String

Function name (or "<anonymous>" for unnamed functions/arrows).

§is_private_member: bool

Whether this function is an ECMAScript #-private class member.

Kept separately from name because a public string-named method may legally begin with # and remains eligible for runtime coverage.

§line: u32

1-based line number where the function starts.

§col: u32

0-based byte column where the function starts.

§cyclomatic: u16

McCabe cyclomatic complexity (1 + decision points).

§cognitive: u16

SonarSource cognitive complexity (structural + nesting penalty).

§line_count: u32

Number of lines in the function body.

§param_count: u8

Number of parameters (excluding TypeScript’s this parameter).

§react_hook_count: u16

Number of React hook calls (useState / useEffect / useMemo / useCallback / custom use*) made directly in this function’s body. Non-zero only for React components/hooks; descriptive context surfaced in the hotspot drill-down, never a tunable threshold (anti-numerology).

§react_jsx_max_depth: u16

Maximum JSX element nesting depth reached in this function’s body (the deepest chain of element-inside-element). 0 when the function renders no JSX. Descriptive context surfaced in the hotspot drill-down, never a tunable threshold (anti-numerology).

§react_prop_count: u16

Number of props destructured from this component’s first parameter (the { a, b, c } props object). 0 for non-component functions and for components taking a bare props identifier (not statically countable). Descriptive context surfaced in the hotspot drill-down, never a tunable threshold (anti-numerology).

§source_hash: Option<String>

Content digest of the function’s full-span source slice.

§contributions: Vec<ComplexityContribution>

Per-decision-point breakdown explaining WHICH constructs drove the cyclomatic and cognitive scores. One entry per increment event (an if emits one cyclomatic and one cognitive entry at the same line, because the two metrics accrue at different granularities). Always computed and cached; surfaced in JSON only behind health --complexity-breakdown.

Trait Implementations§

Source§

impl Clone for FunctionComplexity

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 FunctionComplexity

Source§

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

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

impl<'__de> Decode<'__de> for FunctionComplexity
where '__de:,

Source§

impl Encode for FunctionComplexity

Source§

impl Serialize for FunctionComplexity

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> DecodeOwned for T
where T: for<'de> Decode<'de>,

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