diff --git a/Cargo.toml b/Cargo.toml index 24572fbe..c5738b0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -166,6 +166,8 @@ unused_macro_rules = "warn" unused_qualifications = "warn" variant_size_differences = "warn" +rust_2024_compatibility = { level = "warn", priority = 1 } + # Unstable but desirable lints. # [workspace.lints.rust] # must_not_suspend = "warn" diff --git a/bon-macros/src/builder/builder_gen/input_func.rs b/bon-macros/src/builder/builder_gen/input_func.rs index a02407a6..451a3e93 100644 --- a/bon-macros/src/builder/builder_gen/input_func.rs +++ b/bon-macros/src/builder/builder_gen/input_func.rs @@ -375,7 +375,7 @@ struct FnCallBody { } impl FinishFuncBody for FnCallBody { - fn gen(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2 { + fn generate(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2 { let asyncness = &self.func.sig.asyncness; let maybe_await = asyncness.is_some().then(|| quote!(.await)); diff --git a/bon-macros/src/builder/builder_gen/input_struct.rs b/bon-macros/src/builder/builder_gen/input_struct.rs index 38b137c2..4bd59b53 100644 --- a/bon-macros/src/builder/builder_gen/input_struct.rs +++ b/bon-macros/src/builder/builder_gen/input_struct.rs @@ -168,7 +168,7 @@ struct StructLiteralBody { } impl FinishFuncBody for StructLiteralBody { - fn gen(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2 { + fn generate(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2 { let Self { struct_ident } = self; let member_exprs = member_exprs.iter().map(|MemberExpr { member, expr }| { diff --git a/bon-macros/src/builder/builder_gen/mod.rs b/bon-macros/src/builder/builder_gen/mod.rs index bd0e770f..1ed6b299 100644 --- a/bon-macros/src/builder/builder_gen/mod.rs +++ b/bon-macros/src/builder/builder_gen/mod.rs @@ -62,7 +62,7 @@ pub(crate) struct StartFunc { pub(crate) trait FinishFuncBody { /// Generate `finish` function body from ready-made expressions. - fn gen(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2; + fn generate(&self, member_exprs: &[MemberExpr<'_>]) -> TokenStream2; } pub(crate) struct MemberExpr<'a> { @@ -454,7 +454,7 @@ impl BuilderGenCtx { .map(|member| self.member_expr(member)) .try_collect()?; - let body = &self.finish_func.body.gen(&member_exprs); + let body = &self.finish_func.body.generate(&member_exprs); let asyncness = &self.finish_func.asyncness; let unsafety = &self.finish_func.unsafety; let docs = &self.finish_func.docs; diff --git a/website/docs/guide/alternatives.md b/website/docs/guide/alternatives.md index 3a1ea06c..3927cd27 100644 --- a/website/docs/guide/alternatives.md +++ b/website/docs/guide/alternatives.md @@ -57,7 +57,7 @@ Why is there an explicit `main()` function in this code snippet 🤔? It's a lon ::: -This feature isn't available today in `bon`, but it's planned for the future. However, it won't be enabled by default, but rather be opt-in like it is in `derive-builder`. +This feature isn't available today in `bon`, but it's planned for the future. However, it won't be enabled by default, but rather be opt-in like it is in `derive_builder`. The problem of this feature is that a setter that pushes an element into a collection like that may confuse the reader in case if only one element is pushed. This may hide the fact that the member is actually a collection called `friends` in plural. However, this feature is still useful to provide backwards-compatibility when changing the type of a member from `T` or `Option` to `Collection`. diff --git a/website/docs/guide/conditional-compilation.md b/website/docs/guide/conditional-compilation.md deleted file mode 100644 index 0a19035d..00000000 --- a/website/docs/guide/conditional-compilation.md +++ /dev/null @@ -1,17 +0,0 @@ -# Conditional compilation - -::: code-group - -```rust [Struct] -// use bon::builder; - -// #[builder] -// struct Example { -// #[cfg(all())] -// foo: String, -// } - -// Example::builder() -// .foo() -// .build(); -```