mirror of
https://git.proxmox.com/git/rustc
synced 2025-11-05 22:02:35 +00:00
42 lines
743 B
Rust
42 lines
743 B
Rust
#![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);
|
|
}
|