diff options
Diffstat (limited to 'vendor/derive_builder/tests/compile-fail/private_fields.rs')
-rw-r--r-- | vendor/derive_builder/tests/compile-fail/private_fields.rs | 26 |
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 +} |