summaryrefslogtreecommitdiffstats
path: root/vendor/derive_builder/tests/compile-fail/private_fields.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/derive_builder/tests/compile-fail/private_fields.rs')
-rw-r--r--vendor/derive_builder/tests/compile-fail/private_fields.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/derive_builder/tests/compile-fail/private_fields.rs b/vendor/derive_builder/tests/compile-fail/private_fields.rs
new file mode 100644
index 000000000..74f074df1
--- /dev/null
+++ b/vendor/derive_builder/tests/compile-fail/private_fields.rs
@@ -0,0 +1,26 @@
+#[macro_use]
+extern crate derive_builder;
+
+/// This builder is in an inner module to make sure private fields aren't accessible
+/// from the `main` function.
+mod inner {
+ /// The `LoremBuilder` struct will have private fields for `ipsum` and `dolor`, and
+ /// a public `sit` field.
+ #[derive(Debug, Builder)]
+ #[builder(field(private), setter(into))]
+ pub struct Lorem {
+ ipsum: String,
+ dolor: u16,
+ #[builder(field(public))]
+ sit: bool,
+ }
+}
+
+fn main() {
+ use inner::LoremBuilder;
+
+ let mut lorem = LoremBuilder::default();
+ lorem.dolor(15u16);
+ lorem.sit = Some(true); // <-- public
+ lorem.dolor = Some(0); // <-- private
+}