为什么我可以调用File :: open(...).read_to_end()?

Kai*_*ren 7 rust

以下代码有效,我不知道为什么:

File::open(&some_path).read_to_end().unwrap();
Run Code Online (Sandbox Code Playgroud)

看看API文档,我可以看到File::open()返回IoResult没有的文档read_to_end().

是否存在某种语法糖?难道Result<T, Error>不知何故变成Result<U, Error>

文档:http://doc.rust-lang.org/std/io/fs/struct.File.html#method.read_to_end

Arj*_*jan 5

read_to_end来自Reader特质,如果你看那里你可以看到一个实现读者IoResult<R>的任何R实现Reader:

impl<R: Reader> Reader for IoResult<R>
Run Code Online (Sandbox Code Playgroud)