pub(crate) fn to_real(&self) -> Option<Real> {
        match self.unpack() {
            RV::Integer(i) => Some(Real::Integer(i)),
            RV::Float(f) => Some(Real::Float(f)),
            RV::Object(obj) => match obj.kind() {
                ObjKind::BIGNUM => Some(Real::Bignum((*obj.bignum()).clone())),
                _ => None,
            },
            _ => None,
        }
    }
Convert `self` to `Option<Real>`.
If `self` was not a integer nor a float, return `None`.
ruruby/src/value/value.rs