fn trim_right(&mut self) {
        while self.path.len() > self.len_before_body() {
            let (size, comp) = self.parse_next_component_back();
            if comp.is_some() {
                return;
            } else {
                self.path = &self.path[..self.path.len() - size];
            }
        }
    }
// trim away repeated separators (i.e. empty components) on the right
trim away repeated separators  on the right
trim away repeated separators on the right
fn trim_right(&mut self) {
        while self.path.len() > self.len_before_body() {
            let (size, comp) = self.parse_next_component_back();
            if comp.is_some() {
                return;
            } else {
                self.path = &self.path[..self.path.len() - size];
            }
        }
    }
fn trim_right ( & mut self ) { while self . path . len ( ) > self . len_before_body ( ) { let ( size , comp ) = self . parse_next_component_back ( ) ; if comp . is_some ( ) { return ; } else { self . path = & self . path [ .. self . path . len ( ) - size ] ; } } }
trim away repeated separators (i.e.
trim away repeated separators ( i . e .
&mut self
&mut self