Skip to main content

DuplicatesConfig

Struct DuplicatesConfig 

Source
pub struct DuplicatesConfig {
Show 16 fields pub enabled: bool, pub mode: DetectionMode, pub near: bool, pub min_tokens: usize, pub min_lines: usize, pub min_occurrences: usize, pub threshold: f64, pub ignore: Vec<String>, pub ignored_clones: Vec<String>, pub ignore_defaults: bool, pub skip_local: bool, pub cross_language: bool, pub ignore_imports: bool, pub normalization: NormalizationConfig, pub min_corpus_size_for_shingle_filter: usize, pub min_corpus_size_for_token_cache: usize,
}
Expand description

Configuration for code duplication detection.

Fields§

§enabled: bool

Whether duplication detection is enabled.

§mode: DetectionMode

Detection mode: strict, mild, weak, or semantic.

§near: bool

Detect structurally similar function bodies with small edits.

§min_tokens: usize

Minimum number of tokens for a clone.

§min_lines: usize

Minimum number of lines for a clone.

§min_occurrences: usize

Minimum number of occurrences (instances of the same clone) before a group is reported. Defaults to 2 (every duplicated pair is reported). Raise this to focus on widespread copy-paste worth refactoring and skip context-sensitive pairs.

§threshold: f64

Maximum allowed duplication percentage (0 = no limit).

§ignore: Vec<String>

Additional ignore patterns for duplication analysis.

§ignored_clones: Vec<String>

Reviewed clone groups to omit from duplication results.

Each entry is <fingerprint>:<instance_count>, for example dup:6f12ab34:2. A content or occurrence-count change produces a new key and makes the group reportable again.

§ignore_defaults: bool

Merge built-in generated-framework ignore patterns with ignore.

Set to false to use only the user-provided ignore list.

§skip_local: bool

Only report cross-directory duplicates.

§cross_language: bool

Enable cross-language clone detection by stripping type annotations.

When enabled, TypeScript type annotations (parameter types, return types, generics, interfaces, type aliases) are stripped from the token stream, allowing detection of clones between .ts and .js files.

§ignore_imports: bool

Exclude module-wiring declarations from clone detection.

Defaults to true: token-identical module wiring is a structural property of well-formatted code, not copy-paste, so it should not surface as clone groups. Set to false to count module wiring again. When enabled, ES imports, re-export declarations, and top-level static CommonJS require("...") binding declarations are stripped from the token stream before clone detection. Dynamic imports, side-effect require() calls, nested require() calls, dynamic require arguments, and mixed declarations are still counted.

§normalization: NormalizationConfig

Fine-grained normalization overrides on top of the detection mode.

§min_corpus_size_for_shingle_filter: usize

Minimum tokenized file count before focused duplicate analysis prefilters unchanged files with k-token shingles.

§min_corpus_size_for_token_cache: usize

Minimum source file count before the persistent duplication token cache activates. Below this threshold the cache load/save overhead exceeds the tokenize savings, so the cache stays disabled even when not running with --no-cache.

Trait Implementations§

Source§

impl Clone for DuplicatesConfig

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 DuplicatesConfig

Source§

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

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

impl Default for DuplicatesConfig

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for DuplicatesConfig

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 JsonSchema for DuplicatesConfig

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl Serialize for DuplicatesConfig

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