Guest User

Untitled

a guest
Jul 23rd, 2018
73
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, Clone, Copy, PartialEq, Eq)]
  2. enum Target {
  3. WasVec,
  4. WasNotVec
  5. }
  6.  
  7. enum Decider {
  8. Yes,
  9. No
  10. }
  11.  
  12. impl From<(Decider, u8)> for Target {
  13. fn from(_: (Decider, u8)) -> Target {
  14. Target::WasNotVec
  15. }
  16. }
  17.  
  18. impl<T> From<(Decider, Vec<T>)> for Target
  19. where T:Into<Target>
  20. {
  21. fn from(_: (Decider, Vec<T>)) -> Target {
  22. Target::WasVec
  23. }
  24. }
  25.  
  26. impl<K,V> From< (Decider, Vec<(K, V)>)> for Target
  27. where K: Into<Target>,
  28. V: Into<Target> {
  29. fn from(_: (Decider, Vec<(K, V)>)) -> Target {
  30. Target::WasNotVec
  31. }
  32. }
  33.  
  34. fn main()
  35. {
  36. use Decider::*;
  37.  
  38. let t:Target = (Yes, 2u8).into();
  39. println!("{:?}", t);
  40.  
  41. let v:Vec<u8> = vec![1,2];
  42. let tv:Target = (No, v).into();
  43. println!("{:?}", tv);
  44.  
  45. let w: Vec<(u8, u8)> = vec![(1,2), (3,4)];
  46. let tw: Target = (Yes, w).into();
  47. println!("{:?}", tw);
  48. }
Add Comment
Please, Sign In to add comment