reqwest::get("https://httpbin.org/ip") 함수를 호출하면 반환 타입을 감싼 퓨처를 반환한다. 이 호출은 키와 값이 있는 객체 형식으로 현재 IP 주소를 반환한다. 러스트에서 이는 해시 맵을 통해 표현할 수 있다(예를 들어 HashMap<String,String>). Reqwest 크레이트는 기본으로 퓨처를 반환한다(https://docs.rs/reqwest/latest/reqwest/#making-a-get-request). HTTP 요청을 블로킹 방식으로 만들려면 reqwest::blocking 클라이언트를 사용해야 한다(https://docs.rs/reqwest/latest/reqwest/blocking/index.html).
우리는 응답으로 해시 맵을 감싼 퓨처를 예상한다(예를 들어 Future<Output=HashMap<String, String>>). 그런 다음 퓨처에서 await를 호출할 수 있으므로 런타임은 이를 선택하고 그 내부의 기능을 실행하려고 한다. 이 작업은 시간이 오래 걸릴 것으로 예상되기 때문에 런타임은 백그라운드에서 작업을 처리하고 해당 파일을 읽어 변수의 내용을 채운다.
러스트와 웹 서비스로 작업할 때 적어도 처음에는 보통 자신만의 퓨처를 정의하지 않는다. 크레이트나 다른 사람의 코드를 사용할 때 그들의 함수가 async로 표시되어 있으면 await로 기다려야 한다는 것을 아는 것이 중요하다.