Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug)]
- enum Money {
- USD(u32),
- EUR(u32),
- CHF(u32), // .. Can be more
- }
- #[derive(Debug)]
- enum MyAmount {
- AMOUNT(u32),
- AMOUNTX(u32),
- }
- impl MyAmount {
- fn amount(&self) -> u32 {
- match *self {
- MyAmount::AMOUNT(value) => value.clone(),
- MyAmount::AMOUNTX(value) => value.clone(),
- }
- }
- }
- impl Money {
- fn amount(self) -> u32 {
- unsafe {
- let my_amount = std::mem::transmute::<Money, MyAmount>(self);
- my_amount.amount()
- }
- }
- }
- fn main() {
- let usd = Money::USD(10u32);
- let eur = Money::EUR(20u32);
- let chf = Money::CHF(30u32);
- unsafe {
- // let usd_val = usd.amount();
- // let eur_val = eur.amount();
- let chf_val = chf.amount();
- // println!("USD Value: {:?}",usd_val);
- // println!("EUR Value: {:?}",eur_val);
- // println!("CHF Value: {:?}",chf_val);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement