Skip to content

Releases: elastio/bon

v3.6.3

21 Apr 03:31
3a2907a

Choose a tag to compare

Fixed

  • Fix missing support for #[builder(field)] with #[builder(const)] (#291)

v3.6.2

20 Apr 22:47
8241061

Choose a tag to compare

Added

  • Propagate #[target_feature] attributes on #[builder]-generated finishing functions (#284). Thanks @Lilyyy411 for the contribution!

Fixed

  • Fix visibility and const token order in code generated by #[builder(const)] (#288)

v3.6.1

15 Apr 20:15
5b71e5a

Choose a tag to compare

Fixed

  • Propagate #[track_caller] to the generated finishing function from the underlying function/method (#282). Thanks @Lilyyy411 for the contribution!

v3.6.0

13 Apr 16:57
31be7d0

Choose a tag to compare

Added

  • Add very limited support for #[builder(const)] (#279).
    See the updated docs here

v3.5.2

09 Apr 22:05
f4e1b95

Choose a tag to compare

Fixed

  • Small fix for rust-analyzer syntax highlighting of parameters for functions annotated with #[builder] (#275).
    This doesn't fix the problem fully since function parameters are now assigned "variable" semantic token type instead of "parameter". However, it's already better than "struct" that they were assigned before this fix. Created an issue in rust-analyzer with more details and to get the full fix of this problem: rust-lang/rust-analyzer#19556.
  • Fix lints on nightly 2025-03-20 (#272)

v3.5.1

19 Mar 21:15
4c2ab64

Choose a tag to compare

Fixed

  • Delay the privatizing (i.e. renaming of the original function to __orig_{fn_name}) until after all other macros are expanded (#269). Also removed the warnings for #[tracing::instrument] users introduced in #264. This is because with this patch there will be no difference whether you place #[tracing::instrument] after or before the #[builder] attribute - all other proc macros on the function will see the original function name.

v3.5.0

16 Mar 18:54
954c074

Choose a tag to compare

Added

  • Introduce setters(doc(default(skip))) attribute to skip the inclusion of the default value in the generated docs for setters (#265). See the updated docs here.

Fixed

  • Trigger a compiler warning if #[tracing::instrument] is placed after the #[builder] instead of before (#264). This should prevent the papercut where tracing::instrument assigns the span name with the ugly __orig_ prefix in the name.
  • Fix repeated #[builder] attributes getting ignored on free functions (#263)

v3.4.0

06 Mar 00:22
6719d64

Choose a tag to compare

Added

  • Stabilize the current #[builder(getter)] attribute MVP (#251).
    The cargo feature experimental-getters is no longer needed and is now no-op.
  • Make self receiver and start_fn members available as official fields on the builder (#250).
    Check the new documentation page about native fields.
  • Introduce #[builder(derive(Into))] attribute to generate an impl From<Builder> for T (#248).
    See the updated "Inspecting" guide page now known as Derives for Builders and the updated #[builder(derive)] reference.

Other

  • Fix a typo on the front page of the website 😳 (#243). Thanks @MegaRedHand for the contribution!
  • Add OpenCollective funding option (#241)
  • Regular maintenance (#244, #246, #249, #253)

Acknowledgements

  • Gratitude to the Kindness.ai team who started supporting on OpenCollective at 100$ a month!
  • Gratitude to Ethan Skowronski who started supporting on Patreon at 1$ a month!

v3.3.2

28 Dec 22:25
42e894a

Choose a tag to compare

Fixed

  • Fix syntax errors caused by PascalCasification when generating code for members named self_ (#238)

v3.3.1

23 Dec 00:11
5099fef

Choose a tag to compare

Fixed

  • Fix clippy::empty_enum triggering on nightly with feature(never_type) enabled (#234)