From c922a8baca9caa5a13b43d965d4dc0f640a5e978 Mon Sep 17 00:00:00 2001 From: miXin <52082254@qq.com> Date: Tue, 3 Mar 2026 10:50:33 +0800 Subject: [PATCH] Implement IEquatable in autogenerated C# enums Updated C# enum generation to implement IEquatable interface and added Equals method. Signed-off-by: miXin <52082254@qq.com> --- crates/codegen/src/csharp.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/codegen/src/csharp.rs b/crates/codegen/src/csharp.rs index f40bf9148a0..af87070a58a 100644 --- a/crates/codegen/src/csharp.rs +++ b/crates/codegen/src/csharp.rs @@ -1413,13 +1413,14 @@ fn autogen_csharp_plain_enum(enum_type_name: String, enum_type: &PlainEnumTypeDe let mut output = CsharpAutogen::new(namespace, &[], false); writeln!(output, "[SpacetimeDB.Type]"); - writeln!(output, "public enum {enum_type_name}"); + writeln!(output, "public enum {enum_type_name} : IEquatable<{enum_type_name}>"); indented_block(&mut output, |output| { for variant in &*enum_type.variants { let variant = variant.deref().to_case(Case::Pascal); writeln!(output, "{variant},"); } - }); + writeln!(output); + writeln!(output, "public bool Equals({enum_type_name} other) => this == other;"); output.into_inner() }