| ... | @@ -239,6 +239,9 @@ fn doInner(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.Val | ... | @@ -239,6 +239,9 @@ fn doInner(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.Val |
| 239 | if (comptime extras.isSlice(@TypeOf(x, y))) { | 239 | if (comptime extras.isSlice(@TypeOf(x, y))) { |
| 240 | return try doif(alloc, writer, body, bottom, data, ctx, opts, std.mem.eql(u8, x, y)); | 240 | return try doif(alloc, writer, body, bottom, data, ctx, opts, std.mem.eql(u8, x, y)); |
| 241 | } | 241 | } |
| | 242 | if (@typeInfo(@TypeOf(x)) == .@"struct") { |
| | 243 | return doif(alloc, writer, body, bottom, data, ctx, opts, x.eql(y)); |
| | 244 | } |
| 242 | try doif(alloc, writer, body, bottom, data, ctx, opts, x == y); | 245 | try doif(alloc, writer, body, bottom, data, ctx, opts, x == y); |
| 243 | }, | 246 | }, |
| 244 | .ifnotequal => { | 247 | .ifnotequal => { |
| ... | @@ -250,6 +253,9 @@ fn doInner(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.Val | ... | @@ -250,6 +253,9 @@ fn doInner(alloc: std.mem.Allocator, writer: anytype, comptime value: astgen.Val |
| 250 | if (comptime extras.isSlice(@TypeOf(x, y))) { | 253 | if (comptime extras.isSlice(@TypeOf(x, y))) { |
| 251 | return try doif(alloc, writer, body, bottom, data, ctx, opts, !std.mem.eql(u8, x, y)); | 254 | return try doif(alloc, writer, body, bottom, data, ctx, opts, !std.mem.eql(u8, x, y)); |
| 252 | } | 255 | } |
| | 256 | if (@typeInfo(@TypeOf(x)) == .@"struct") { |
| | 257 | return doif(alloc, writer, body, bottom, data, ctx, opts, !x.eql(y)); |
| | 258 | } |
| 253 | try doif(alloc, writer, body, bottom, data, ctx, opts, x != y); | 259 | try doif(alloc, writer, body, bottom, data, ctx, opts, x != y); |
| 254 | }, | 260 | }, |
| 255 | } | 261 | } |