type Param<'a, T: std::fmt::Debug> = (&'a str, fn(&'a str) -> serde_json::Result<T>, fn(&'a serde_json::Result<T>) -> bool);
let cases: Vec<Param<T>> = vec![...]
}
ах да, ну и ниже: for (data, deserializer, exp) in cases { let result = deserializer(data); if !exp(&result) { panic!("does not matches, got: {:?}", result); } }
А не проще сразу fn(&str) -> bool сделать?
тогда уж просто fn() -> bool :) да, проще, сам чет недопёр. и тем не менее, в целях повышения образованности, как параметр прописать именно для моего исходного случая?
кстати нет, не проще. мне надо потом рисовать, что именно получилось, если не сматчилось
Именно в том виде, что ты указал — никак, у тебя каждый элемент имеет свой тип, а в вектор можно положить только элементы одинакового типа
Box<dyn ...> может помочь?
Обсуждают сегодня