#generics #types #rust #parameters #rust-rocket
#общие #типы #Ржавчина #параметры #rust-ракета
Вопрос:
Я использую веб-фреймворк Rocket, и мне нужно создать функцию с общим типом параметра parameter:
use rocket_contrib::json::{Json, JsonValue};
fn bluid_succes_response<T>(data: T) -> JsonValue {
json!(data)
}
Это ошибка, которую я имею:
the trait `dataStructures::parameters_structures::_::_serde::Serialize` is not implemented for `T`
Как я могу реализовать Serialize
признак для общего типа, например T
, или есть другой способ решить проблему?
Ответ №1:
Вам нужно ограничить общий тип T
признаком ( Serialize
в данном случае):
use rocket_contrib::json::{Json, JsonValue};
fn bluid_succes_response<T: serde::Serialize>(data: T) -> JsonValue {
json!(data)
}