fn canonicalize(path: Option<Path>) -> Option<Path> {
        path.and_then(|mut path|
            match io::io_error::cond.trap(|_| ()).inside(|| fs::readlink(&path)) {
                Some(canon) => {
                    if canon.is_absolute() {
                        Some(canon)
                    } else {
                        path.pop();
                        Some(path.join(canon))
                    }
                },
                None => Some(path),
            })
    }
// Follow symlinks.  If the resolved path is relative, make it absolute.
Follow symlinks.  If the resolved path is relative, make it absolute.
Follow symlinks . If the resolved path is relative make it absolute .
fn canonicalize(path: Option<Path>) -> Option<Path> {
        path.and_then(|mut path|
            match io::io_error::cond.trap(|_| ()).inside(|| fs::readlink(&path)) {
                Some(canon) => {
                    if canon.is_absolute() {
                        Some(canon)
                    } else {
                        path.pop();
                        Some(path.join(canon))
                    }
                },
                None => Some(path),
            })
    }
fn canonicalize ( path : Option < Path > ) -> Option < Path > { path . and_then ( | mut path | match io :: io_error :: cond . trap ( | _ | ( ) ) . inside ( | | fs :: readlink ( & path ) ) { Some ( canon ) => { if canon . is_absolute ( ) { Some ( canon ) } else { path . pop ( ) ; Some ( path . join ( canon ) ) } } , None => Some ( path ) , } ) }
Follow symlinks.
Follow symlinks .
path
Option<Path>
path
Option<Path>