summaryrefslogtreecommitdiffstats
path: root/vendor/derive_builder/examples/channel.rs
diff options
context:
space:
mode:
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);
+}