Fix enum serialization (#61)

* Fix enum serialization

* Add tests for enum serialization

* Add missing enum serialization configuration.

* Ensure enums serialize as expected using defaults

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
This commit is contained in:
Zae Chao 2025-03-24 20:51:24 +08:00 • committed by GitHub
commit 96ba2fa076
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,37 +7,38 @@ namespace ModelContextProtocol.Protocol.Types;
/// These map to syslog message severities, as specified in RFC-5424:
/// https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1
/// </summary>
[JsonConverter(typeof(JsonStringEnumConverter<LoggingLevel>))]
public enum LoggingLevel
{
/// <summary>Detailed debug information, typically only valuable to developers.</summary>
[JsonPropertyName("debug")]
[JsonStringEnumMemberName("debug")]
Debug,
/// <summary>Normal operational messages that require no action.</summary>
[JsonPropertyName("info")]
[JsonStringEnumMemberName("info")]
Info,
/// <summary>Normal but significant events that might deserve attention.</summary>
[JsonPropertyName("notice")]
[JsonStringEnumMemberName("notice")]
Notice,
/// <summary>Warning conditions that don't represent an error but indicate potential issues.</summary>
[JsonPropertyName("warning")]
[JsonStringEnumMemberName("warning")]
Warning,
/// <summary>Error conditions that should be addressed but don't require immediate action.</summary>
[JsonPropertyName("error")]
[JsonStringEnumMemberName("error")]
Error,
/// <summary>Critical conditions that require immediate attention.</summary>
[JsonPropertyName("critical")]
[JsonStringEnumMemberName("critical")]
Critical,
/// <summary>Action must be taken immediately to address the condition.</summary>
[JsonPropertyName("alert")]
[JsonStringEnumMemberName("alert")]
Alert,
/// <summary>System is unusable and requires immediate attention.</summary>
[JsonPropertyName("emergency")]
[JsonStringEnumMemberName("emergency")]
Emergency
}