Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
make clippy attributes optional
  • Loading branch information
liamkinne committed May 15, 2024
commit 390df87026221b9b304c5514d14eeddc3fbf2a68
1 change: 1 addition & 0 deletions dbc-codegen-cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ fn main() {
.dbc_name(&dbc_file_name)
.dbc_content(&dbc_file)
.debug_prints(true)
.clippy_attributes(true)
.build();

dbc_codegen::codegen(config, &mut messages_code).unwrap_or_else(|e| {
Expand Down
58 changes: 33 additions & 25 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ pub struct Config<'a> {
/// Optional: Allow dead code in the generated module. Default: `false`.
#[builder(default)]
pub allow_dead_code: bool,

/// Optional: Include clippy lint attributes in generated output. Default: `false`.
#[builder(default)]
pub clippy_attributes: bool,
}

/// Configuration for including features in the codegenerator.
Expand Down Expand Up @@ -114,32 +118,36 @@ pub fn codegen(config: Config<'_>, out: impl Write) -> Result<()> {
let mut w = BufWriter::new(out);

writeln!(&mut w, "// Generated code!")?;
writeln!(
&mut w,
"#![allow(unused_comparisons, unreachable_patterns, unused_imports)]"
)?;
if config.allow_dead_code {
writeln!(&mut w, "#![allow(dead_code)]")?;

if config.clippy_attributes {
writeln!(
&mut w,
"#![allow(unused_comparisons, unreachable_patterns, unused_imports)]"
)?;
if config.allow_dead_code {
writeln!(&mut w, "#![allow(dead_code)]")?;
}
writeln!(&mut w, "#![allow(clippy::let_and_return, clippy::eq_op)]")?;
writeln!(
&mut w,
"#![allow(clippy::useless_conversion, clippy::unnecessary_cast)]"
)?;
writeln!(
&mut w,
"#![allow(clippy::excessive_precision, clippy::manual_range_contains, clippy::absurd_extreme_comparisons, clippy::too_many_arguments)]"
)?;
writeln!(&mut w, "#![deny(clippy::arithmetic_side_effects)]")?;
writeln!(&mut w)?;
writeln!(
&mut w,
"//! Message definitions from file `{:?}`",
config.dbc_name
)?;
writeln!(&mut w, "//!")?;
writeln!(&mut w, "//! - Version: `{:?}`", dbc.version())?;
writeln!(&mut w)?;
}
writeln!(&mut w, "#![allow(clippy::let_and_return, clippy::eq_op)]")?;
writeln!(
&mut w,
"#![allow(clippy::useless_conversion, clippy::unnecessary_cast)]"
)?;
writeln!(
&mut w,
"#![allow(clippy::excessive_precision, clippy::manual_range_contains, clippy::absurd_extreme_comparisons, clippy::too_many_arguments)]"
)?;
writeln!(&mut w, "#![deny(clippy::arithmetic_side_effects)]")?;
writeln!(&mut w)?;
writeln!(
&mut w,
"//! Message definitions from file `{:?}`",
config.dbc_name
)?;
writeln!(&mut w, "//!")?;
writeln!(&mut w, "//! - Version: `{:?}`", dbc.version())?;
writeln!(&mut w)?;

writeln!(&mut w, "use core::ops::BitOr;")?;
writeln!(&mut w, "use bitvec::prelude::*;")?;

Expand Down
15 changes: 0 additions & 15 deletions testing/can-messages/src/messages.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
// Generated code!
#![allow(unused_comparisons, unreachable_patterns, unused_imports)]
#![allow(clippy::let_and_return, clippy::eq_op)]
#![allow(clippy::useless_conversion, clippy::unnecessary_cast)]
#![allow(
clippy::excessive_precision,
clippy::manual_range_contains,
clippy::absurd_extreme_comparisons,
clippy::too_many_arguments
)]
#![deny(clippy::arithmetic_side_effects)]

//! Message definitions from file `"example.dbc"`
//!
//! - Version: `Version("43")`

#[cfg(feature = "arb")]
use arbitrary::{Arbitrary, Unstructured};
use bitvec::prelude::*;
Expand Down