(index<- )        ./libstd/rt/io/support.rs

  1  // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
  2  // file at the top-level directory of this distribution and at
  3  // http://rust-lang.org/COPYRIGHT.
  4  //
  5  // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
  6  // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
  7  // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
  8  // option. This file may not be copied, modified, or distributed
  9  // except according to those terms.
 10  
 11  use path::*;
 12  
 13  pub trait PathLike {
 14      fn path_as_str<T>(&self, f: &fn(&str) -> T) -> T;
 15  }
 16  
 17  impl<'self> PathLike for &'self str {
 18      fn path_as_str<T>(&self, f&fn(&str) -> T) -> T {
 19          f(*self)
 20      }
 21  }
 22  
 23  impl PathLike for Path {
 24      fn path_as_str<T>(&self, f&fn(&str) -> T) -> T {
 25          let s = self.as_str().unwrap();
 26          f(s)
 27      }
 28  }
 29  
 30  #[cfg(test)]
 31  mod test {
 32      use path::*;
 33      use super::PathLike;
 34  
 35      #[test]
 36      fn path_like_smoke_test() {
 37          let expected = if cfg!(unix) { "/home" } else { "C:\\" };
 38          let path = Path::new(expected);
 39          path.path_as_str(|p| assert!(p == expected));
 40          path.path_as_str(|p| assert!(p == expected));
 41      }
 42  }

libstd/rt/io/support.rs:12:1-12:1 -trait- definition:

pub trait PathLike {
references:-
23: impl PathLike for Path {
17: impl<'self> PathLike for &'self str {
libstd/rt/rtio.rs:
80:     fn fs_unlink<P: PathLike>(&mut self, path: &P) -> Result<(), IoError>;
82:     fn fs_stat<P: PathLike>(&mut self, path: &P) -> Result<FileStat, IoError>;
85:     fn fs_readdir<P: PathLike>(&mut self, path: &P, flags: c_int) ->
84:     fn fs_rmdir<P: PathLike>(&mut self, path: &P) -> Result<(), IoError>;
78:     fn fs_open<P: PathLike>(&mut self, path: &P, fm: FileMode, fa: FileAccess)
83:     fn fs_mkdir<P: PathLike>(&mut self, path: &P) -> Result<(), IoError>;
libstd/rt/uv/uvio.rs:
616:     fn fs_stat<P: PathLike>(&mut self, path: &P) -> Result<FileStat, IoError> {
554:     fn fs_open<P: PathLike>(&mut self, path: &P, fm: FileMode, fa: FileAccess)
703:     fn fs_readdir<P: PathLike>(&mut self, path: &P, flags: c_int) ->
417: fn uv_fs_helper<P: PathLike>(loop_: &mut Loop, path: &P,
609:     fn fs_unlink<P: PathLike>(&mut self, path: &P) -> Result<(), IoError> {
688:     fn fs_mkdir<P: PathLike>(&mut self, path: &P) -> Result<(), IoError> {
696:     fn fs_rmdir<P: PathLike>(&mut self, path: &P) -> Result<(), IoError> {
libstd/rt/uv/file.rs:
68:     pub fn unlink<P: PathLike>(self, loop_: &Loop, path: &P, cb: FsCallback) {
202:     pub fn rmdir<P: PathLike>(self, loop_: &Loop, path: &P, cb: FsCallback) {
81:     pub fn unlink_sync<P: PathLike>(self, loop_: &Loop, path: &P)
39:     pub fn open<P: PathLike>(self, loop_: &Loop, path: &P, flags: int, mode: int,
215:     pub fn readdir<P: PathLike>(self, loop_: &Loop, path: &P,
96:     pub fn stat<P: PathLike>(self, loop_: &Loop, path: &P, cb: FsCallback) {
53:     pub fn open_sync<P: PathLike>(self, loop_: &Loop, path: &P,
189:     pub fn mkdir<P: PathLike>(self, loop_: &Loop, path: &P, mode: int, cb: FsCallback) {
libstd/rt/io/file.rs:
192: pub fn rmdir<P: PathLike>(path: &P) {
132: pub fn unlink<P: PathLike>(path: &P) {
282: pub fn readdir<P: PathLike>(path: &P) -> Option<~[Path]> {
90: pub fn open<P: PathLike>(path: &P,
241: pub fn stat<P: PathLike>(path: &P) -> Option<FileStat> {
162: pub fn mkdir<P: PathLike>(path: &P) {
libstd/rt/io/net/unix.rs:
38:     pub fn bind<P: PathLike>(_path: &P) -> Option<UnixListener> {
(18)