首页 > 解决方案 > 具有泛型参数类型的函数

问题描述

我正在使用 Rocket Web 框架,我需要创建一个具有通用参数类型参数的函数:

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或者是否有另一种方法来解决问题?

标签: genericstypesrustparametersrust-rocket

解决方案


您需要将泛型类型限制T为特征(Serialize在本例中):

use rocket_contrib::json::{Json, JsonValue};

fn bluid_succes_response<T: serde::Serialize>(data: T) ->  JsonValue  { 
    json!(data) 
}

推荐阅读