@@ -75,7 +75,7 @@ pub fn sizeOfPackedAny(comptime T: type, value: T) usize {
7575 @compileError ("Unsupported type '" ++ @typeName (T ) ++ "'" );
7676}
7777
78- pub fn packAny (writer : anytype , value : anytype ) ! void {
78+ pub fn packAny (writer : * std.Io.Writer , value : anytype ) ! void {
7979 const T = @TypeOf (value );
8080 switch (@typeInfo (T )) {
8181 .void = > return packNull (writer ),
@@ -123,7 +123,7 @@ pub fn packAny(writer: anytype, value: anytype) !void {
123123 @compileError ("Unsupported type '" ++ @typeName (T ) ++ "'" );
124124}
125125
126- pub fn unpackAny (reader : anytype , allocator : std.mem.Allocator , comptime T : type ) ! T {
126+ pub fn unpackAny (reader : * std.Io.Reader , allocator : std.mem.Allocator , comptime T : type ) ! T {
127127 switch (@typeInfo (T )) {
128128 .void = > return unpackNull (reader ),
129129 .bool = > return unpackBool (reader , T ),
@@ -156,74 +156,74 @@ pub fn unpackAny(reader: anytype, allocator: std.mem.Allocator, comptime T: type
156156
157157test "packAny/unpackAny: bool" {
158158 var buffer : [16 ]u8 = undefined ;
159- var stream = std .io . fixedBufferStream (& buffer );
160- try packAny (stream . writer () , true );
159+ var writer = std .Io . Writer . fixed (& buffer );
160+ try packAny (& writer , true );
161161
162- stream . reset ( );
163- try std .testing .expectEqual (true , try unpackAny (stream . reader () , std .testing .allocator , bool ));
162+ var reader = std . Io . Reader . fixed ( writer . buffered () );
163+ try std .testing .expectEqual (true , try unpackAny (& reader , std .testing .allocator , bool ));
164164}
165165
166166test "packAny/unpackAny: optional bool" {
167167 const values = [_ ]? bool { true , null };
168168 for (values ) | value | {
169169 var buffer : [16 ]u8 = undefined ;
170- var stream = std .io . fixedBufferStream (& buffer );
171- try packAny (stream . writer () , value );
170+ var writer = std .Io . Writer . fixed (& buffer );
171+ try packAny (& writer , value );
172172
173- stream . reset ( );
174- try std .testing .expectEqual (value , try unpackAny (stream . reader () , std .testing .allocator , ? bool ));
173+ var reader = std . Io . Reader . fixed ( writer . buffered () );
174+ try std .testing .expectEqual (value , try unpackAny (& reader , std .testing .allocator , ? bool ));
175175 }
176176}
177177
178178test "packAny/unpackAny: int" {
179179 var buffer : [16 ]u8 = undefined ;
180- var stream = std .io . fixedBufferStream (& buffer );
181- try packAny (stream . writer () , -42 );
180+ var writer = std .Io . Writer . fixed (& buffer );
181+ try packAny (& writer , -42 );
182182
183- stream . reset ( );
184- try std .testing .expectEqual (-42 , try unpackAny (stream . reader () , std .testing .allocator , i32 ));
183+ var reader = std . Io . Reader . fixed ( writer . buffered () );
184+ try std .testing .expectEqual (-42 , try unpackAny (& reader , std .testing .allocator , i32 ));
185185}
186186
187187test "packAny/unpackAny: optional int" {
188188 const values = [_ ]? i32 { -42 , null };
189189 for (values ) | value | {
190190 var buffer : [16 ]u8 = undefined ;
191- var stream = std .io . fixedBufferStream (& buffer );
192- try packAny (stream . writer () , value );
191+ var writer = std .Io . Writer . fixed (& buffer );
192+ try packAny (& writer , value );
193193
194- stream . reset ( );
195- try std .testing .expectEqual (value , try unpackAny (stream . reader () , std .testing .allocator , ? i32 ));
194+ var reader = std . Io . Reader . fixed ( writer . buffered () );
195+ try std .testing .expectEqual (value , try unpackAny (& reader , std .testing .allocator , ? i32 ));
196196 }
197197}
198198
199199test "packAny/unpackAny: float" {
200200 var buffer : [16 ]u8 = undefined ;
201- var stream = std .io . fixedBufferStream (& buffer );
202- try packAny (stream . writer () , 3.14 );
201+ var writer = std .Io . Writer . fixed (& buffer );
202+ try packAny (& writer , 3.14 );
203203
204- stream . reset ( );
205- try std .testing .expectEqual (3.14 , try unpackAny (stream . reader () , std .testing .allocator , f32 ));
204+ var reader = std . Io . Reader . fixed ( writer . buffered () );
205+ try std .testing .expectEqual (3.14 , try unpackAny (& reader , std .testing .allocator , f32 ));
206206}
207207
208208test "packAny/unpackAny: optional float" {
209209 const values = [_ ]? f32 { 3.14 , null };
210210 for (values ) | value | {
211211 var buffer : [16 ]u8 = undefined ;
212- var stream = std .io . fixedBufferStream (& buffer );
213- try packAny (stream . writer () , value );
212+ var writer = std .Io . Writer . fixed (& buffer );
213+ try packAny (& writer , value );
214214
215- stream . reset ( );
216- try std .testing .expectEqual (value , try unpackAny (stream . reader () , std .testing .allocator , ? f32 ));
215+ var reader = std . Io . Reader . fixed ( writer . buffered () );
216+ try std .testing .expectEqual (value , try unpackAny (& reader , std .testing .allocator , ? f32 ));
217217 }
218218}
219219
220220test "packAny/unpackAny: string" {
221221 var buffer : [32 ]u8 = undefined ;
222- var stream = std .io . fixedBufferStream (& buffer );
223- try packAny (stream . writer () , "hello" );
222+ var writer = std .Io . Writer . fixed (& buffer );
223+ try packAny (& writer , "hello" );
224224
225- stream . reset ( );
226- const result = try unpackAny (stream . reader () , std .testing .allocator , []const u8 );
225+ var reader = std . Io . Reader . fixed ( writer . buffered () );
226+ const result = try unpackAny (& reader , std .testing .allocator , []const u8 );
227227 defer std .testing .allocator .free (result );
228228 try std .testing .expectEqualStrings ("hello" , result );
229229}
@@ -232,11 +232,11 @@ test "packAny/unpackAny: optional string" {
232232 const values = [_ ]? []const u8 { "hello" , null };
233233 for (values ) | value | {
234234 var buffer : [32 ]u8 = undefined ;
235- var stream = std .io . fixedBufferStream (& buffer );
236- try packAny (stream . writer () , value );
235+ var writer = std .Io . Writer . fixed (& buffer );
236+ try packAny (& writer , value );
237237
238- stream . reset ( );
239- const result = try unpackAny (stream . reader () , std .testing .allocator , ? []const u8 );
238+ var reader = std . Io . Reader . fixed ( writer . buffered () );
239+ const result = try unpackAny (& reader , std .testing .allocator , ? []const u8 );
240240 defer if (result ) | str | std .testing .allocator .free (str );
241241 if (value ) | str | {
242242 try std .testing .expectEqualStrings (str , result .? );
@@ -248,12 +248,12 @@ test "packAny/unpackAny: optional string" {
248248
249249test "packAny/unpackAny: array" {
250250 var buffer : [64 ]u8 = undefined ;
251- var stream = std .io . fixedBufferStream (& buffer );
251+ var writer = std .Io . Writer . fixed (& buffer );
252252 const array = [_ ]i32 { 1 , 2 , 3 , 4 , 5 };
253- try packAny (stream . writer () , & array );
253+ try packAny (& writer , & array );
254254
255- stream . reset ( );
256- const result = try unpackAny (stream . reader () , std .testing .allocator , []const i32 );
255+ var reader = std . Io . Reader . fixed ( writer . buffered () );
256+ const result = try unpackAny (& reader , std .testing .allocator , []const i32 );
257257 defer std .testing .allocator .free (result );
258258 try std .testing .expectEqualSlices (i32 , & array , result );
259259}
@@ -263,11 +263,11 @@ test "packAny/unpackAny: optional array" {
263263 const values = [_ ]? []const i32 { & array , null };
264264 for (values ) | value | {
265265 var buffer : [64 ]u8 = undefined ;
266- var stream = std .io . fixedBufferStream (& buffer );
267- try packAny (stream . writer () , value );
266+ var writer = std .Io . Writer . fixed (& buffer );
267+ try packAny (& writer , value );
268268
269- stream . reset ( );
270- const result = try unpackAny (stream . reader () , std .testing .allocator , ? []const i32 );
269+ var reader = std . Io . Reader . fixed ( writer . buffered () );
270+ const result = try unpackAny (& reader , std .testing .allocator , ? []const i32 );
271271 defer if (result ) | arr | std .testing .allocator .free (arr );
272272 if (value ) | arr | {
273273 try std .testing .expectEqualSlices (i32 , arr , result .? );
@@ -283,12 +283,12 @@ test "packAny/unpackAny: struct" {
283283 y : i32 ,
284284 };
285285 var buffer : [64 ]u8 = undefined ;
286- var stream = std .io . fixedBufferStream (& buffer );
286+ var writer = std .Io . Writer . fixed (& buffer );
287287 const point = Point { .x = 10 , .y = 20 };
288- try packAny (stream . writer () , point );
288+ try packAny (& writer , point );
289289
290- stream . reset ( );
291- const result = try unpackAny (stream . reader () , std .testing .allocator , Point );
290+ var reader = std . Io . Reader . fixed ( writer . buffered () );
291+ const result = try unpackAny (& reader , std .testing .allocator , Point );
292292 try std .testing .expectEqualDeep (point , result );
293293}
294294
@@ -301,11 +301,11 @@ test "packAny/unpackAny: optional struct" {
301301 const values = [_ ]? Point { point , null };
302302 for (values ) | value | {
303303 var buffer : [64 ]u8 = undefined ;
304- var stream = std .io . fixedBufferStream (& buffer );
305- try packAny (stream . writer () , value );
304+ var writer = std .Io . Writer . fixed (& buffer );
305+ try packAny (& writer , value );
306306
307- stream . reset ( );
308- const result = try unpackAny (stream . reader () , std .testing .allocator , ? Point );
307+ var reader = std . Io . Reader . fixed ( writer . buffered () );
308+ const result = try unpackAny (& reader , std .testing .allocator , ? Point );
309309 try std .testing .expectEqualDeep (value , result );
310310 }
311311}
@@ -323,11 +323,11 @@ test "packAny/unpackAny: union" {
323323
324324 for (values ) | value | {
325325 var buffer : [64 ]u8 = undefined ;
326- var stream = std .io . fixedBufferStream (& buffer );
327- try packAny (stream . writer () , value );
326+ var writer = std .Io . Writer . fixed (& buffer );
327+ try packAny (& writer , value );
328328
329- stream . reset ( );
330- const result = try unpackAny (stream . reader () , std .testing .allocator , Value );
329+ var reader = std . Io . Reader . fixed ( writer . buffered () );
330+ const result = try unpackAny (& reader , std .testing .allocator , Value );
331331 try std .testing .expectEqualDeep (value , result );
332332 }
333333}
@@ -346,35 +346,35 @@ test "packAny/unpackAny: optional union" {
346346
347347 for (values ) | value | {
348348 var buffer : [64 ]u8 = undefined ;
349- var stream = std .io . fixedBufferStream (& buffer );
350- try packAny (stream . writer () , value );
349+ var writer = std .Io . Writer . fixed (& buffer );
350+ try packAny (& writer , value );
351351
352- stream . reset ( );
353- const result = try unpackAny (stream . reader () , std .testing .allocator , ? Value );
352+ var reader = std . Io . Reader . fixed ( writer . buffered () );
353+ const result = try unpackAny (& reader , std .testing .allocator , ? Value );
354354 try std .testing .expectEqualDeep (value , result );
355355 }
356356}
357357
358358test "packAny/unpackAny: String struct" {
359359 var buffer : [64 ]u8 = undefined ;
360- var stream = std .io . fixedBufferStream (& buffer );
360+ var writer = std .Io . Writer . fixed (& buffer );
361361 const str = String { .data = "hello" };
362- try packAny (stream . writer () , str );
362+ try packAny (& writer , str );
363363
364- stream . reset ( );
365- const result = try unpackAny (stream . reader () , std .testing .allocator , String );
364+ var reader = std . Io . Reader . fixed ( writer . buffered () );
365+ const result = try unpackAny (& reader , std .testing .allocator , String );
366366 defer std .testing .allocator .free (result .data );
367367 try std .testing .expectEqualStrings ("hello" , result .data );
368368}
369369
370370test "packAny/unpackAny: Binary struct" {
371371 var buffer : [64 ]u8 = undefined ;
372- var stream = std .io . fixedBufferStream (& buffer );
372+ var writer = std .Io . Writer . fixed (& buffer );
373373 const str = String { .data = "\x01\x02\x03\x04 " };
374- try packAny (stream . writer () , str );
374+ try packAny (& writer , str );
375375
376- stream . reset ( );
377- const result = try unpackAny (stream . reader () , std .testing .allocator , String );
376+ var reader = std . Io . Reader . fixed ( writer . buffered () );
377+ const result = try unpackAny (& reader , std .testing .allocator , String );
378378 defer std .testing .allocator .free (result .data );
379379 try std .testing .expectEqualStrings ("\x01\x02\x03\x04 " , result .data );
380380}
0 commit comments