【发布时间】:2019-07-16 15:09:14
【问题描述】:
#[serde(skip_serializing_if = "Vec::is_empty")]s 可以为 Vecs 做 #[serde(skip_serializing_if = "Vec::is_empty")],但切片的等价物是什么?
【问题讨论】:
#[serde(skip_serializing_if = "Vec::is_empty")]s 可以为 Vecs 做 #[serde(skip_serializing_if = "Vec::is_empty")],但切片的等价物是什么?
【问题讨论】:
切片类型[T] 也有一个is_empty 方法。你可以这样称呼它:
use serde::Serialize;
#[derive(Serialize)]
struct S<'a> {
#[serde(skip_serializing_if = "<[_]>::is_empty")]
slice: &'a [String]
}
fn main() {
let s = S { slice: &[] };
println!("{}", serde_json::to_string(&s).unwrap());
}
【讨论】: