传递给 Reqwest 的 Result::read_to_string 的变量从哪里获取数据?

Where does a variable passed to Reqwest's Result::read_to_string get the data from?

我正在学习 Rust 并且一直在玩这个例子来执行 HTTP GET 请求然后显示数据:

extern crate reqwest;
use std::io::Read;

fn run() -> Result<()> {
    let mut res = reqwest::get("http://httpbin.org/get")?;
    let mut body = String::new();
    res.read_to_string(&mut body)?;

    println!("Status: {}", res.status());
    println!("Headers:\n{:#?}", res.headers());
    println!("Body:\n{}", body);

    Ok(())
}

我不明白变量 body 是如何最终得到正确数据的。对于 headers 和状态,我可以看到相关的函数,但对于 body 数据,它只对整个数据使用 read_to_string?

res 对象有一个 read_to_string() 方法,它将响应存储到您传入的 String

res.read_to_string(&mut body);

编辑:从我的评论中导入:

reqwest::Response 0.6.2 documentation 表示 Read 表示 Response:

Read the body of the Response

当前版本的文档中似乎缺少它。