fn to_string_value(
    value_rr: Rc<RefCell<Value>>,
) -> Option<Rc<RefCell<Value>>> {
    let is_string;
    {
        let value_rrb = value_rr.borrow();
        match *value_rrb {
            Value::String(_, _) => {
                is_string = true;
            }
            _ => {
                is_string = false;
            }
        }
    }
    if is_string {
        return Some(value_rr);
    } else {
        let value_rrb = value_rr.borrow();
        let value_str_pre = value_rrb.to_string();
        let value_str_opt = to_string_2(&value_str_pre);
        match value_str_opt {
            Some(s) => Some(Rc::new(RefCell::new(Value::String(
                s.to_string(),
                None,
            )))),
            _ => None,
        }
    }
}
/// Takes a wrapped value as its single argument, and returns a
/// wrapped value for the stringified representation of the argument.
Takes a wrapped value as its single argument, and returns a
wrapped value for the stringified representation of the argument.
Takes a wrapped value as its single argument and returns a wrapped value for the stringified representation of the argument .
fn to_string_value(
    value_rr: Rc<RefCell<Value>>,
) -> Option<Rc<RefCell<Value>>> {
    let is_string;
    {
        let value_rrb = value_rr.borrow();
        match *value_rrb {
            Value::String(_, _) => {
                is_string = true;
            }
            _ => {
                is_string = false;
            }
        }
    }
    if is_string {
        return Some(value_rr);
    } else {
        let value_rrb = value_rr.borrow();
        let value_str_pre = value_rrb.to_string();
        let value_str_opt = to_string_2(&value_str_pre);
        match value_str_opt {
            Some(s) => Some(Rc::new(RefCell::new(Value::String(
                s.to_string(),
                None,
            )))),
            _ => None,
        }
    }
}
fn to_string_value ( value_rr : Rc < RefCell < Value > > , ) -> Option < Rc < RefCell < Value > > > { let is_string ; { let value_rrb = value_rr . borrow ( ) ; match * value_rrb { Value :: String ( _ , _ ) => { is_string = true ; } _ => { is_string = false ; } } } if is_string { return Some ( value_rr ) ; } else { let value_rrb = value_rr . borrow ( ) ; let value_str_pre = value_rrb . to_string ( ) ; let value_str_opt = to_string_2 ( & value_str_pre ) ; match value_str_opt { Some ( s ) => Some ( Rc :: new ( RefCell :: new ( Value :: String ( s . to_string ( ) , None , ) ) ) ) , _ => None , } } }
Takes a wrapped value as its single argument, and returns a
wrapped value for the stringified representation of the argument.
Takes a wrapped value as its single argument and returns a wrapped value for the stringified representation of the argument .
value_rr
Rc<RefCell<Value>>