macro_rules! offer { ($session : expr, { $($pat : pat => $result : expr,) + }) => { ... }; }
Offer a choice between many different sessions wrapped in an enum
enum