Keep -32602 and existing validation order; tell callers to send the object itself. Cover host routing, stdout fast paths, SDK calls and generated dispatch. Card: SAU-317
This commit is contained in:
@@ -15,6 +15,25 @@ pub struct Error {
|
||||
pub data: Option<Value>,
|
||||
}
|
||||
impl Error {
|
||||
/// Build the object-params diagnostic used by calls and generated dispatch.
|
||||
#[doc(hidden)]
|
||||
pub fn params_not_object(params: &Value) -> Self {
|
||||
let kind = match params {
|
||||
Value::String(_) => "a string",
|
||||
Value::Array(_) => "an array",
|
||||
Value::Number(_) => "a number",
|
||||
Value::Null => "null",
|
||||
Value::Bool(_) => "a boolean",
|
||||
Value::Object(_) => "an object",
|
||||
};
|
||||
Self::new(
|
||||
-32602,
|
||||
format!(
|
||||
"params must be a JSON object, got {kind}. Send the object itself, not a JSON-encoded string."
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
/// Construct an error without structured details.
|
||||
pub fn new(code: i64, message: impl Into<String>) -> Self {
|
||||
Self {
|
||||
|
||||
Reference in New Issue
Block a user