Mouse.current doesn't work the same way as Gamepad.current or Keyboard.current

It would be really nice if Mouse.current allowed me to use Mouse.current[MouseButton].wasPressedThisFrame, Mouse.current[MouseButton].wasReleasedThisFrame, and Mouse.current[MouseButton].isPressed like Keyboard and Gamepad do with Key and GamepadButton respectively.

Is there a workaround because Mouse.current[string] doesn't have wasPressedThisFrame, wasReleasedThisFrame, and isPressed properties. I can only use the extension method IsPressed() and as far as I can tell the InputControl that is in that extension method also has no way of polling any of those properties, maybe there's a cast I'm missing?

I figured out that I can cast the InputControl of the mouse buttons to ButtonControls to evaluate those properties.

(Mouse.current.GetChildControl(mouseMapping[buttonId]) as ButtonControl).isPressed etc