reqwest v0.9 将 serde v1.0 作为依赖项,因此实现了将 serde_json 错误转换为 reqwest error。
在我的代码中,我正在使用 serde_json 而不是使用 reqwest.json()附带的方法进行一些反序列化。
// reqwest = "0.9"
// serde = { version = "1.0", features = ["derive"] }
// serde_json = "1.0"
pub fn get_meta(client: &reqwest::Client) -> Result<Meta, reqwest::Error> {
let mut resp = client
.get("http://localhost:8080/requests/playlist.json")
.send()?;
let data: Value = serde_json::from_str(&resp.text()?).unwrap();
let data = data["children"][0]["children"].clone();
let metas: Vec<Meta> = serde_json::from_value(data).unwrap();
let meta: Meta = metas.last().expect("nothing is playing").clone();
Ok(meta)
}
Run Code Online (Sandbox Code Playgroud)
目前,我试图将 serde_json 错误作为 reqwest 错误返回。更改 …
当我被困在家庭作业 6 的第 5 部分时,我一直在学习优秀的CIS 194 课程。它围绕着在没有任何可分性测试的情况下实现标尺功能。
我发现可以通过将无限列表中的值连续插入累加器来构建标尺函数。
nats = [0,1,2,3,..]
[3]
[2,3,2]
[1,2,1,3,1,2,1]
[0,1,0,2,0,1,0,3,0,1,0,2,0]
Run Code Online (Sandbox Code Playgroud)
然后我尝试为Stream数据类型实现这个算法,它是一个没有列表的列表nil
nats = [0,1,2,3,..]
[3]
[2,3,2]
[1,2,1,3,1,2,1]
[0,1,0,2,0,1,0,3,0,1,0,2,0]
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,由于我试图从右侧折叠,因此出现了 stackoverflow 错误。然而,我很惊讶地看到相同的算法适用于普通的无限列表。
data Stream a = Cons a (Stream a)
streamToList :: Stream a -> [a]
streamToList (Cons x xs) = x : streamToList xs
instance Show a => Show (Stream a) where
show = show . take 20 . streamToList
streamFromSeed :: (a -> a) -> …Run Code Online (Sandbox Code Playgroud) 我想用Cargo-wasi编译以下代码。
// reqwest = { version = "0.11", features = ["json"] }
// tokio = { version = "1", features = ["full"] }
use std::collections::HashMap;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::get("https://httpbin.org/ip")
.await?
.json::<HashMap<String, String>>()
.await?;
println!("{:#?}", resp);
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
尝试编译后,出现以下错误,因为mio 目前不支持 WASI
$ cargo wasi run
Compiling mio v0.7.9
Compiling parking_lot v0.11.1
Compiling serde_json v1.0.64
Compiling idna v0.2.2
error[E0432]: unresolved import `crate::sys::IoSourceState`
--> /home/ducaale/.cargo/registry/src/github.com-1ecc6299db9ec823/mio-0.7.9/src/io_source.rs:12:5
|
12 | use crate::sys::IoSourceState;
| …Run Code Online (Sandbox Code Playgroud)