Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. #[derive(Debug)]
  2. enum Money {
  3. USD(u32),
  4. EUR(u32),
  5. CHF(u32), // .. Can be more
  6. }
  7.  
  8. #[derive(Debug)]
  9. enum MyAmount {
  10. AMOUNT(u32),
  11. AMOUNTX(u32),
  12. }
  13.  
  14. impl MyAmount {
  15. fn amount(&self) -> u32 {
  16. match *self {
  17. MyAmount::AMOUNT(value) => value.clone(),
  18. MyAmount::AMOUNTX(value) => value.clone(),
  19. }
  20. }
  21. }
  22.  
  23. impl Money {
  24. fn amount(self) -> u32 {
  25. unsafe {
  26. let my_amount = std::mem::transmute::<Money, MyAmount>(self);
  27. my_amount.amount()
  28. }
  29. }
  30. }
  31.  
  32. fn main() {
  33. let usd = Money::USD(10u32);
  34. let eur = Money::EUR(20u32);
  35. let chf = Money::CHF(30u32);
  36. unsafe {
  37. // let usd_val = usd.amount();
  38. // let eur_val = eur.amount();
  39. let chf_val = chf.amount();
  40. // println!("USD Value: {:?}",usd_val);
  41. // println!("EUR Value: {:?}",eur_val);
  42. // println!("CHF Value: {:?}",chf_val);
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement