feat(model): expose client method name (#391)

This is useful for including in logs etc. Without this its pretty
painful to extract manually
This commit is contained in:
John Howard 2025-08-29 03:16:24 -07:00 • committed by GitHub
commit 7a67482777
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -58,6 +58,9 @@ pub struct EmptyObject {}
pub trait ConstString: Default {
const VALUE: &str;
fn as_str(&self) -> &'static str {
Self::VALUE
}
}
#[macro_export]
macro_rules! const_string {
@ -1491,6 +1494,26 @@ ts_union!(
| ListToolsRequest;
);
impl ClientRequest {
pub fn method(&self) -> &'static str {
match &self {
ClientRequest::PingRequest(r) => r.method.as_str(),
ClientRequest::InitializeRequest(r) => r.method.as_str(),
ClientRequest::CompleteRequest(r) => r.method.as_str(),
ClientRequest::SetLevelRequest(r) => r.method.as_str(),
ClientRequest::GetPromptRequest(r) => r.method.as_str(),
ClientRequest::ListPromptsRequest(r) => r.method.as_str(),
ClientRequest::ListResourcesRequest(r) => r.method.as_str(),
ClientRequest::ListResourceTemplatesRequest(r) => r.method.as_str(),
ClientRequest::ReadResourceRequest(r) => r.method.as_str(),
ClientRequest::SubscribeRequest(r) => r.method.as_str(),
ClientRequest::UnsubscribeRequest(r) => r.method.as_str(),
ClientRequest::CallToolRequest(r) => r.method.as_str(),
ClientRequest::ListToolsRequest(r) => r.method.as_str(),
}
}
}
ts_union!(
export type ClientNotification =
| CancelledNotification