use crate::error::Error;
use rmcp::model::ErrorData as McpError;
pub fn to_mcp_error(err: Error) -> McpError {
match err {
Error::InvalidInput(msg) => McpError::invalid_params(msg, None),
other => McpError::internal_error(other.to_string(), None),
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn invalid_input_maps_to_invalid_params() {
let e = to_mcp_error(Error::InvalidInput("bad".into()));
assert_eq!(e.message.as_ref(), "bad");
}
#[test]
fn other_maps_to_internal_error() {
let e = to_mcp_error(Error::Internal("boom".into()));
assert!(e.message.contains("boom"));
}
}