@@ -95,7 +95,7 @@ pub const Host = struct {
95
95
< % if (p .description ) { -% >
96
96
// / <%- formatCommentBlock(p.description, "/// ") %>
97
97
< % } -% >
98
- < %- p .name % > : < %- p . nullable ? " ?" : null % >< %- toZigType (p) % >< %- p . nullable ? " = null" : null % > ,
98
+ < %- p .name % > : < %- isZigOptional (schema, p) ? " ?" : null % >< %- toZigType (p) % >< %- isZigOptional (schema, p) ? " = null" : null % > ,
99
99
< % }) % >
100
100
101
101
// / Internally used function, should not be called by plugin authors.
@@ -105,18 +105,28 @@ pub const Host = struct {
105
105
< % } % >
106
106
< % schema .properties .forEach (p => { -% >
107
107
< % if (p .$ref && ! p .$ref .enum ) { % >
108
- < % if (p . nullable ) { % >
108
+ < % if (isZigOptional (schema, p) ) { % >
109
109
if (self .< %- p .name % > != null ) {
110
110
< % } -% >
111
- self .< %- p .name % > = (try self .< %- p .name % > .< %- p . nullable ? ' ?.' : null % > XXX__decodeBase64Fields ()).* ;
112
- < % if (p . nullable ) { % >
111
+ self .< %- p .name % > = (try self .< %- p .name % > .< %- isZigOptional (schema, p) ? ' ?.' : null % > XXX__decodeBase64Fields ()).* ;
112
+ < % if (isZigOptional (schema, p) ) { % >
113
113
}
114
114
< % } -% >
115
115
< % } else if (p .type === ' buffer' ) { % >
116
- const dest_ <%- p .name %> = try std .heap .wasm_allocator .alloc (u8, try b64dec .calcSizeForSlice (self .< %- p .name % > ));
117
- try b64dec .decode (dest_< %- p .name % > , self .< %- p .name % > );
118
- self .< %- p .name % > = dest_< %- p .name % > ;
119
- < % } % >
116
+ < % if (isZigOptional (schema, p)) { % >
117
+ if (self .aBuffer != null ) {
118
+ < % } /* end isZigOptional */ -% >
119
+
120
+ const srcBuf = self .< %- p .name % >< %- isZigOptional (schema, p) ? ' .?' : null % > ;
121
+ const dest_ <%- p .name %> = try std .heap .wasm_allocator .alloc (u8, try b64dec .calcSizeForSlice (srcBuf));
122
+ try b64dec .decode (dest_< %- p .name % > , srcBuf);
123
+ self .< %- p .name % > = dest_< %- p .name % > ;
124
+
125
+ < % if (isZigOptional (schema, p)) { % >
126
+ }
127
+ < % } /* end isZigOptional */ -% >
128
+
129
+ < % } /* end buffer */ % >
120
130
< % }) % >
121
131
122
132
return self ;
@@ -129,16 +139,23 @@ pub const Host = struct {
129
139
< % } % >
130
140
< % schema .properties .forEach (p => { -% >
131
141
< % if (p .$ref && ! p .$ref .enum ) { % >
132
- < % if (p . nullable ) { % >
142
+ < % if (isZigOptional (schema, p) ) { % >
133
143
if (self .< %- p .name % > != null ) {
134
144
< % } -% >
135
- self .< %- p .name % > = (try self .< %- p .name % > .< %- p . nullable ? ' ?.' : null % > XXX__encodeBase64Fields ()).* ;
136
- < % if (p . nullable ) { % >
145
+ self .< %- p .name % > = (try self .< %- p .name % > .< %- isZigOptional (schema, p) ? ' ?.' : null % > XXX__encodeBase64Fields ()).* ;
146
+ < % if (isZigOptional (schema, p) ) { % >
137
147
}
138
148
< % } -% >
139
149
< % } else if (p .type === ' buffer' ) { % >
140
- const dest_ <%- p .name %> = try std .heap .wasm_allocator .alloc (u8, b64enc .calcSize (self .< %- p .name % > .len ));
141
- self .< %- p .name % > = b64enc .encode (dest_< %- p .name % > , self .< %- p .name % > );
150
+ < % if (isZigOptional (schema, p)) { % >
151
+ if (self .< %- p .name % > != null ) {
152
+ < % } -% >
153
+ const srcBuf = self .< %- p .name % >< %- isZigOptional (schema, p) ? ' .?' : null % > ;
154
+ const dest_ <%- p .name %> = try std .heap .wasm_allocator .alloc (u8, b64enc .calcSize (srcBuf .len ));
155
+ self .< %- p .name % > = b64enc .encode (dest_< %- p .name % > , srcBuf);
156
+ < % if (isZigOptional (schema, p)) { % >
157
+ }
158
+ < % } /* end isZigOptional */ -% >
142
159
< % } % >
143
160
< % }) % >
144
161
0 commit comments