chore: add #[non_exhaustive] to remaining public structs (#768)

* chore: add #[non_exhaustive] to remaining public structs

* chore: add #[non_exhaustive] to remaining public types

* chore: enable exhaustive_structs/enums clippy lints

* test: add untagged ServerResult deserialization regression tests
This commit is contained in:
Dale Seo 2026-03-26 10:23:58 -04:00 • committed by GitHub
commit 6a3b32d3ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -8,7 +8,6 @@ use rmcp::{
model::*,
service::{RequestContext, Service},
};
use tokio_util::sync::CancellationToken;
// Tests start here
#[tokio::test]
@ -48,13 +47,7 @@ async fn test_context_inclusion_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Default::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;
@ -85,13 +78,7 @@ async fn test_context_inclusion_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(2),
meta: Default::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(2), client.peer().clone()),
)
.await?;
@ -122,13 +109,7 @@ async fn test_context_inclusion_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(3),
meta: Default::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(3), client.peer().clone()),
)
.await?;
@ -179,13 +160,7 @@ async fn test_context_inclusion_ignored_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;
@ -241,13 +216,7 @@ async fn test_message_sequence_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;
@ -307,13 +276,7 @@ async fn test_message_sequence_validation_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;
@ -330,13 +293,7 @@ async fn test_message_sequence_validation_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(2),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(2), client.peer().clone()),
)
.await;
@ -370,13 +327,7 @@ async fn test_selective_context_handling_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;
@ -405,13 +356,7 @@ async fn test_selective_context_handling_integration() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(2),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(2), client.peer().clone()),
)
.await?;
@ -457,13 +402,7 @@ async fn test_context_inclusion() -> anyhow::Result<()> {
let result = handler
.handle_request(
request.clone(),
RequestContext {
peer: client.peer().clone(),
ct: CancellationToken::new(),
id: NumberOrString::Number(1),
meta: Meta::default(),
extensions: Default::default(),
},
RequestContext::new(NumberOrString::Number(1), client.peer().clone()),
)
.await?;