Skip to content

Releases: colin-kiegel/rust-derive-builder

v0.20.0

14 Feb 22:20
Compare
Choose a tag to compare
  • Bump syn to version 2 #308
  • Bump darling to version 0.20.6 #308
  • BREAKING CHANGE: Remove support for field(type = "...") as syn no longer allows this. #308
  • Allow omitting quotes on builder(default = ...) expressions #308

v0.13.1

12 Feb 16:22
Compare
Choose a tag to compare
  • Accept field(ty = "...") as an alias for field(type = "...") in preparation for moving to syn 2.0, which doesn't allow the use of keywords as meta item paths. #306

v0.13.0

22 Jan 17:16
1b3017d
Compare
Choose a tag to compare
  • Bump MSRV to 1.56.0
  • Add build_fn(error(validation_error = <bool>)) to disable generation of ValidationError within the builder's error so that alloc::string is avoided.
  • Add feature alloc for controlling linking of alloc crate during no_std. This way users can use no_std without providing a global_allocator.
  • Make try-setters inherit strip_option from setter for try_setter. Using these settings together previously caused a compile error #284

v0.12.0

28 Nov 18:37
Compare
Choose a tag to compare
  • Produce error when default is used with field(type = "...") rather than silently ignoring default #269
  • Add support for crate = "..." to support re-export scenarios #274

v0.11.2

20 Apr 20:24
Compare
Choose a tag to compare
  • Allow restricted visibility using vis = "..." for builders, build methods, setters, and fields #247
  • Allow specifying the type of a builder field using #[builder(field(type = "..."))] #246
  • Allow specifying how a builder field is built using #[builder(field(build = "..."))] #246
  • Update darling, proc-macro2, syn, and quote dependencies #250

v0.11.1

16 Mar 22:11
Compare
Choose a tag to compare
  • Forward allow and cfg attributes from the deriving struct to the builder and its impl block #222
  • Support passing attributes to the builder struct using #[builder_struct_attr(...)] #241
  • Support passing attributes to the builder struct's inherent impl block using #[builder_impl_attr(...)] #241

v0.11.0

15 Mar 22:11
Compare
Choose a tag to compare
  • Support shorthand and long-form collection setters; #[builder(setter(each = "..."))] and #[builder(setter(each(name = "...")))] #234
  • Allow collection setters to be generic over Into using `#[builder(setter(each(name = "...", into)))] #234 and #214
  • Allow specifying attributes for builder fields and setters using #[builder_field_attr(...)] and #[builder_setter_attr(...)] #237

Note: This version didn't have anything that clearly required a minor version increase; however, given the amount of time and number of commits since last publication a conservative approach was taken.

v0.10.2

21 Apr 17:16
Compare
Choose a tag to compare
  • Don't include derive_builder_core in derive_builder so that no_std builds #206

v0.10.1

20 Apr 14:53
Compare
Choose a tag to compare
  • Don't reference std when in no_std context #204
  • Update documentation to reflect that alloc is now stable #202

v0.10.0

31 Mar 15:54
Compare
Choose a tag to compare
  • Requires Rust 1.40.0 or newer (was 1.37.0) #169
  • Logging feature is removed #177
  • Type parameters no longer have the Default bound #178
  • Make most of derive_builder_core private #189
  • Add setter(each = "name") for extension of collection-like fields #199

This release changes how derive_builder handles errors; instead of returning a string, a structured error is now returned from build. This implements std::error::Error, making it easy to use alongside libraries such as anyhow, and it is replaceable, making it easy to drop in your library's own error instead. In addition, this approach means that builders no longer force any allocations, useful in no_std contexts.