(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)