Avoid SIGFPE or panic when dividing by zero by adding CheckedDiv trait or using alternative solution

In my company, we use rug::Rational. Sometimes, it so happens that denominator can be zero, which results in division by zero, due to not checking for is_zero. We thought about some better solution for making it semantically or possibly runtime safe. Our first thought is to make a CheckedDiv trait, which returns Option, so that None is returned when division by zero or other runtime error could possibly happen, while Some is returned during normal operation.

Thus, we wanted to ask:

  1. Is it possible to add smth like CheckedDiv trait to this crate? And maybe should we work on it?
  2. Does this solution sound good and follow good practices? Because even CheckedAdd, CheckedSub don't exist, so I'm not sure.
  3. Maybe you could let us know the alternative solution, if something comes to your mind.