use crate::SDKResult;
use crate::error::validation_error;
pub fn serialize_params<T: serde::Serialize>(
params: &T,
context: &str,
) -> SDKResult<serde_json::Value> {
serde_json::to_value(params).map_err(|e| {
validation_error("request.params", format!("无法序列化请求参数: {e}")).map_context(|ctx| {
ctx.set_operation("serialize_params")
.add_context("resource", context);
})
})
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn serialize_params_success() {
let params = vec!["a", "b"];
let v = serialize_params(¶ms, "测试").expect("序列化应成功");
assert_eq!(v, serde_json::json!(["a", "b"]));
}
}