Rust
Configuration - .deepsource.toml
.deepsource.toml
This section covers configuration specific to the rust
analyzer. Please make sure you read the general configuration guide first.
name
name
- Type: String
- Presence: mandatory
- Description: Shortcode of the analyzer.
- Example:
name = "rust"
enabled
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this analyzer should be run.
- Example:
enabled = true
meta
meta
- Type: Table
- Presence: optional
- Description: Any supported metadata to pass to the analyzer.
- Example:
[analyzers.meta]
msrv = "1.25.0"
msrv
msrv
- Type: String
- Presence: optional
- Description: Minimum supported Rust version that your project builds against. Note: we don't support
nightly
Rust releases. - Default Value:
"stable"
- Example:
msrv = "1.58.1"
# or, for match against just 1.58 versions in general
msrv = "1.58"
# or, just stable to support the latest
# available release of rust on stable channel.
msrv = "stable"
skip_doc_coverage
skip_doc_coverage
-
Type: Array
-
Presence: optional
-
Description: Specify which artifacts to skip when calculating documentation coverage.
-
Available Values:
const
,struct
,union
,enum
,function
,module
,static
,trait
, andtype-alias
-
const
- Ignore documentation coverage for const items -
struct
- Ignore documentation coverage for structs -
union
- Ignore documentation coverage for unions -
enum
- Ignore documentation coverage for enums -
function
- Ignore documentation coverage for functions -
module
- Ignore documentation coverage for modules -
static
- Ignore documentation coverage for static items -
trait
- Ignore documentation coverage for traits -
type-alias
- Ignore documentation coverage for type aliases -
Default Value: []
-
Example:
skip_doc_coverage = ["module", "trait"]
track_test_doc_coverage
track_test_doc_coverage
- Type: Boolean
- Presence: optional
- Description: Toggle whether documentation coverage should be reported for test files.
- Default Value:
false
- Example:
# The default configuration
track_test_doc_coverage = false
# Enable docs coverage for test files
track_test_doc_coverage = true
cyclomatic_complexity_threshold
cyclomatic_complexity_threshold
-
Type: String
-
Presence: optional
-
Description: Specify the acceptable risk category for your project as the threshold. All functions with complexity beyond this threshold will raise an issue. For example, setting the threshold to
low
will flag all functions that have a cyclomatic complexity of more than5
, while setting the threshold tocritical
will not flag any function. -
Available Values:
low
,medium
,high
,very-high
andcritical
Risk category | Cyclomatic complexity range | Recommended action |
---|---|---|
low | 1-5 | No action is needed. |
medium | 6-15 | Review and monitor. |
high | 16-25 | Review and refactor. Recommended to add detailed comments if the function absolutely needs to be kept as it is. |
very-high | 26-50 | Refactor to reduce the complexity. |
critical | >50 | Must refactor this. This can make the code untestable and very difficult to understand. |
- Default Value:
high
- Example:
[analyzers.meta]
cyclomatic_complexity_threshold = "very-high"
Sample config
version = 1
test_patterns = [
"tests/**"
]
exclude_patterns = [
"**/examples/**"
]
[[analyzers]]
name = "rust"
enabled = true
[analyzers.meta]
msrv = "stable"
We currently support Rust 1.25.0 and above in the stable channel but not nightly or beta channels.
Updated about 1 year ago