summaryrefslogtreecommitdiffstats
path: root/vendor/derive_builder/examples/channel.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
commitc23a457e72abe608715ac76f076f47dc42af07a5 (patch)
tree2772049aaf84b5c9d0ed12ec8d86812f7a7904b6 /vendor/derive_builder/examples/channel.rs
parentReleasing progress-linux version 1.73.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-c23a457e72abe608715ac76f076f47dc42af07a5.tar.xz
rustc-c23a457e72abe608715ac76f076f47dc42af07a5.zip
Merging upstream version 1.74.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/derive_builder/examples/channel.rs')
-rw-r--r--vendor/derive_builder/examples/channel.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/derive_builder/examples/channel.rs b/vendor/derive_builder/examples/channel.rs
new file mode 100644
index 000000000..7c89701b5
--- /dev/null
+++ b/vendor/derive_builder/examples/channel.rs
@@ -0,0 +1,41 @@
+#![allow(dead_code)]
+
+#[macro_use]
+extern crate derive_builder;
+
+use std::convert::From;
+
+#[derive(PartialEq, Default, Debug, Clone)]
+struct Uuid(i32);
+#[derive(PartialEq, Default, Debug, Clone)]
+struct Authentication(i32);
+
+impl From<i32> for Uuid {
+ fn from(x: i32) -> Uuid {
+ Uuid(x)
+ }
+}
+
+impl From<i32> for Authentication {
+ fn from(x: i32) -> Authentication {
+ Authentication(x)
+ }
+}
+
+#[derive(Debug, Default, Builder)]
+#[builder(setter(into))]
+struct Channel {
+ id: Uuid,
+ token: Authentication,
+ special_info: i32,
+}
+
+fn main() {
+ let ch = ChannelBuilder::default()
+ .special_info(42)
+ .id(0)
+ .token(5_494_192)
+ .build()
+ .unwrap();
+ println!("{:?}", ch);
+}