Separate rust-event and piston, using generic key type