Selecting a member for while statement

Learning Topic Binary Search Tree. Option<Rc<RefCell<*>>> are the link types.
The current software works, but perhaps has available style improvements.

    1. Approach A . Successful. Rust code with explicit left and right traversal which may be multiple links. Two while loops.
    1. Approaches B,C. Failed. A member function with a bool selector to return left or right members. One while loop. The various rules of Rust did not approve of approach to the BOMU or results were defective.

Is there a way coalesce the left and right into one entity ? One while loop is preferred rather than two.

               else {//this is Approach A

                    if flexy {
                        while let Some(chaser)  =  chasenode.clone().borrow().right.as_ref(){//
                            chasenode = chaser.clone();//chaser;
                        }
                    } else
                    {
                        while let Some(chaser)  = chasenode.clone().borrow().left.as_ref() {
                            chasenode = chaser.clone();//chaser;
                        }
                    }
                }

fn eitherlr(&self,switch:bool) -> link_irec{//approach B simplest
        if switch {self.left.clone()} else {self.right.clone()}
    }

Thanks in Advance. I can change the format of the post in necessary.

I see the code for Approach A but not Approach B.

Thanks for the reply. Change of status recently. Testing failure. The topic can be [closed] if that makes sense on this site. The tester of that fn failed to test properly. :face_with_open_eyes_and_hand_over_mouth:

I may have related questions to this topic. If so, should I post as though this current post never existed or append to the current post? Perhaps the next question is not code review but rather a syntax problem.

It's a judgement call, do what makes the most sense to you. If it feels distinct enough for a new topic, you can always include a link back here if being related is relevant.