Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug, Clone, Copy, PartialEq, Eq)]
- enum Target {
- WasVec,
- WasNotVec
- }
- enum Decider {
- Yes,
- No
- }
- impl From<(Decider, u8)> for Target {
- fn from(_: (Decider, u8)) -> Target {
- Target::WasNotVec
- }
- }
- impl<T> From<(Decider, Vec<T>)> for Target
- where T:Into<Target>
- {
- fn from(_: (Decider, Vec<T>)) -> Target {
- Target::WasVec
- }
- }
- impl<K,V> From< (Decider, Vec<(K, V)>)> for Target
- where K: Into<Target>,
- V: Into<Target> {
- fn from(_: (Decider, Vec<(K, V)>)) -> Target {
- Target::WasNotVec
- }
- }
- fn main()
- {
- use Decider::*;
- let t:Target = (Yes, 2u8).into();
- println!("{:?}", t);
- let v:Vec<u8> = vec![1,2];
- let tv:Target = (No, v).into();
- println!("{:?}", tv);
- let w: Vec<(u8, u8)> = vec![(1,2), (3,4)];
- let tw: Target = (Yes, w).into();
- println!("{:?}", tw);
- }
Add Comment
Please, Sign In to add comment