1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
[]
= "bon"
= "3.1.1"
= "Next-gen compile-time-checked builder generator, named function's arguments, and more!"
= [
"rust-patterns",
"data-structures",
"asynchronous",
"no-std",
"no-std::no-alloc",
]
= ["builder", "macro", "derive", "constructor", "setter"]
= "2021"
= "https://bon-rs.com"
= "MIT OR Apache-2.0"
= "https://github.com/elastio/bon"
# This MSRV was chosen because Rust supports mixing generic type and const
# parameters only starting with this version. We require this feature for the
# cases when the builder is generated for a function or struct that uses const
# generics. The generated builder **always** appends a generic type parameter
# for the type state at the end of the Builder generics list. So for functions
# or structs that use const generics the generated builder will have a generic
# type parameter after the const generic parameter, which is only supported
# starting from Rust 1.59.0.
= "1.59.0"
[]
= true
# Generate clickable links in the source code view in the docs
= ["--generate-link-to-definition"]
# We don't need the docs to be built for every first-tier target.
# This crate is not platform-specific.
= ["x86_64-unknown-linux-gnu"]
[]
= true
[]
# The version of the macro crate is pinned to a specific one because the code
# generated by the macros uses private APIs from the runtime crate that are not
# guarded by semver.
= { = "../bon-macros", = "=3.1.1" }
= "1"
[]
# Using a bit older version that supports our MSRV
= "1.4.1"
# Using a bit older version that supports our MSRV
= { = "1.29.1", = ["macros", "rt-multi-thread"] }
# Using a bit older version that supports our MSRV
= "1.0.89"
[]
= []
= ["std"]
= ["alloc"]
# See the explanation of what this feature does in the docs here:
# https://bon-rs.com/guide/typestate-api/custom-methods#implied-bounds
= ["bon-macros/implied-bounds"]
# 🔬 Experimental! There may be breaking changes to this feature between *minor* releases,
# however, compatibility within patch releases is guaranteed though.
#
# This feature enables the #[builder(overwritable)] attribute that can be used to
# allow overwriting already set fields in the builder. Without this attribute it's
# not possible to set the same member twice in the builder, a compile error would be
# generated.
#
# See more info at https://bon-rs.com/reference/builder/top-level/overwritable.
#
# We are considering stabilizing this attribute if you have a use for it. Please leave
# a 👍 reaction under the issue https://github.com/elastio/bon/issues/149 if you need
# this attribute. It would also be cool if you could leave a comment under that issue
# describing your use case for it.
= ["bon-macros/experimental-overwritable"]