Set of downcasting matching macros akin to what Scala's match or Haskell's case can do. Useful in actor models etc.
``` let a = Box::new(5i32) as Box; let b = matchdowncast(a, { x: i32 => x y: f32 => x as i32, z: () => -1, _ => panic!() });
assert_eq!(b, 5); ```