fn trim_left(&mut self) {
        while !self.path.is_empty() {
            let (size, comp) = self.parse_next_component();
            if comp.is_some() {
                return;
            } else {
                self.path = &self.path[size..];
            }
        }
    }
// trim away repeated separators (i.e. empty components) on the left
trim away repeated separators  on the left
trim away repeated separators on the left
fn trim_left(&mut self) {
        while !self.path.is_empty() {
            let (size, comp) = self.parse_next_component();
            if comp.is_some() {
                return;
            } else {
                self.path = &self.path[size..];
            }
        }
    }
fn trim_left ( & mut self ) { while ! self . path . is_empty ( ) { let ( size , comp ) = self . parse_next_component ( ) ; if comp . is_some ( ) { return ; } else { self . path = & self . path [ size .. ] ; } } }
trim away repeated separators (i.e.
trim away repeated separators ( i . e .
&mut self
&mut self