Languages
Rust
Code Analysis
.deepsource.toml
This section covers .deepsource.toml
configuration specific to the rust
analyzer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of the analyzer.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this analyzer should be run.
- Example:
meta
- Type: Table
- Presence: optional
- Description: Any supported metadata to pass to the analyzer.
- Example:
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:
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 itemsstruct
- Ignore documentation coverage for structsunion
- Ignore documentation coverage for unionsenum
- Ignore documentation coverage for enumsfunction
- Ignore documentation coverage for functionsmodule
- Ignore documentation coverage for modulesstatic
- Ignore documentation coverage for static itemstrait
- Ignore documentation coverage for traitstype-alias
- Ignore documentation coverage for type aliases
- Default Value: []
- Example:
track_test_doc_coverage
- Type: Boolean
- Presence: optional
- Description: Toggle whether documentation coverage should be reported for test files.
- Default Value:
false
- Example:
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:
Sample Config
We currently support Rust 1.25.0 and above in the stable channel but not nightly or beta channels.
Code Coverage
To report code coverage for Rust projects, you can use the cargo-llvm-cov
tool. This tool generates code coverage reports in various formats, including LCOV, which DeepSource supports.
Code Formatter (Transformer)
rustfmt
Transform all incoming Rust code with rustfmt, the official Rust code formatter.
This section covers .deepsource.toml
configuration specific to the rustfmt
transformer. Please make sure to read the general configuration guide first.
name
- Type: String
- Presence: mandatory
- Description: Shortcode of this transformer.
- Example:
enabled
- Type: Boolean
- Presence: optional
- Description: Toggle whether this transformer should be run.
- Example:
Vulnerability Scanning
Supported target files:
Cargo.toml
Cargo.lock