allow serializeMap to work with optionals
This commit is contained in:
		
							parent
							
								
									c056dbb0ff
								
							
						
					
					
						commit
						f5663fd84d
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		|  | @ -2,6 +2,16 @@ const std = @import("std"); | ||||||
| // options is a json.Options, but since we're using our hacked json.zig we don't want to | // options is a json.Options, but since we're using our hacked json.zig we don't want to | ||||||
| // specifically call this out | // specifically call this out | ||||||
| pub fn serializeMap(map: anytype, key: []const u8, options: anytype, out_stream: anytype) !bool { | pub fn serializeMap(map: anytype, key: []const u8, options: anytype, out_stream: anytype) !bool { | ||||||
|  |     if (@typeInfo(@TypeOf(map)) == .Optional) { | ||||||
|  |         if (map == null) | ||||||
|  |             return true | ||||||
|  |         else | ||||||
|  |             return serializeMapInternal(map.?, key, options, out_stream); | ||||||
|  |     } | ||||||
|  |     return serializeMapInternal(map, key, options, out_stream); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | fn serializeMapInternal(map: anytype, key: []const u8, options: anytype, out_stream: anytype) !bool { | ||||||
|     if (map.len == 0) return true; |     if (map.len == 0) return true; | ||||||
|     // TODO: Map might be [][]struct{key, value} rather than []struct{key, value} |     // TODO: Map might be [][]struct{key, value} rather than []struct{key, value} | ||||||
|     var child_options = options; |     var child_options = options; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue