我了解super
可让您访问"父母"范围,但我偶然发现std::io
的代码,我不知道它是如何工作的。
pub fn copy<R: ?Sized, W: ?Sized>(reader: &mut R, writer: &mut W) -> io::Result<u64>
where R: Read, W: Write
{
let mut buf = [0; super::DEFAULT_BUF_SIZE];
let mut written = 0;
loop {
let len = match reader.read(&mut buf) {
Ok(0) => return Ok(written),
Ok(len) => len,
Err(ref e) if e.kind() == ErrorKind::Interrupted => continue,
Err(e) => return Err(e),
};
writer.write_all(&buf[..len])?;
written += len as u64;
}
}
如何访问super::DEFAULT_BUF_SIZE
?我可以看到它已在sys_common::io
中声明,但我无法看到此模块如何成为util
模块的父级。