@@ -519,33 +519,33 @@ pub const Reader = struct {
519
519
w : * Writer ,
520
520
limit : std.Io.Limit ,
521
521
) std.Io.Reader.StreamError ! usize {
522
- const reader : * Reader = @fieldParentPtr ("interface" , io_r );
522
+ const reader : * Reader = @alignCast ( @ fieldParentPtr ("interface" , io_r ) );
523
523
const remaining_content_length = & reader .state .body_remaining_content_length ;
524
524
const remaining = remaining_content_length .* ;
525
525
if (remaining == 0 ) {
526
526
reader .state = .ready ;
527
527
return error .EndOfStream ;
528
528
}
529
- const n = try reader .in .stream (w , limit .min (.limited (remaining )));
529
+ const n = try reader .in .stream (w , limit .min (.limited64 (remaining )));
530
530
remaining_content_length .* = remaining - n ;
531
531
return n ;
532
532
}
533
533
534
534
fn contentLengthDiscard (io_r : * std.Io.Reader , limit : std.Io.Limit ) std.Io.Reader.Error ! usize {
535
- const reader : * Reader = @fieldParentPtr ("interface" , io_r );
535
+ const reader : * Reader = @alignCast ( @ fieldParentPtr ("interface" , io_r ) );
536
536
const remaining_content_length = & reader .state .body_remaining_content_length ;
537
537
const remaining = remaining_content_length .* ;
538
538
if (remaining == 0 ) {
539
539
reader .state = .ready ;
540
540
return error .EndOfStream ;
541
541
}
542
- const n = try reader .in .discard (limit .min (.limited (remaining )));
542
+ const n = try reader .in .discard (limit .min (.limited64 (remaining )));
543
543
remaining_content_length .* = remaining - n ;
544
544
return n ;
545
545
}
546
546
547
547
fn chunkedStream (io_r : * std.Io.Reader , w : * Writer , limit : std.Io.Limit ) std.Io.Reader.StreamError ! usize {
548
- const reader : * Reader = @fieldParentPtr ("interface" , io_r );
548
+ const reader : * Reader = @alignCast ( @ fieldParentPtr ("interface" , io_r ) );
549
549
const chunk_len_ptr = switch (reader .state ) {
550
550
.ready = > return error .EndOfStream ,
551
551
.body_remaining_chunk_len = > | * x | x ,
@@ -591,7 +591,7 @@ pub const Reader = struct {
591
591
}
592
592
}
593
593
if (cp .chunk_len == 0 ) return parseTrailers (reader , 0 );
594
- const n = try in .stream (w , limit .min (.limited (cp .chunk_len )));
594
+ const n = try in .stream (w , limit .min (.limited64 (cp .chunk_len )));
595
595
chunk_len_ptr .* = .init (cp .chunk_len + 2 - n );
596
596
return n ;
597
597
},
@@ -607,15 +607,15 @@ pub const Reader = struct {
607
607
continue :len .head ;
608
608
},
609
609
else = > | remaining_chunk_len | {
610
- const n = try in .stream (w , limit .min (.limited (@intFromEnum (remaining_chunk_len ) - 2 )));
610
+ const n = try in .stream (w , limit .min (.limited64 (@intFromEnum (remaining_chunk_len ) - 2 )));
611
611
chunk_len_ptr .* = .init (@intFromEnum (remaining_chunk_len ) - n );
612
612
return n ;
613
613
},
614
614
}
615
615
}
616
616
617
617
fn chunkedDiscard (io_r : * std.Io.Reader , limit : std.Io.Limit ) std.Io.Reader.Error ! usize {
618
- const reader : * Reader = @fieldParentPtr ("interface" , io_r );
618
+ const reader : * Reader = @alignCast ( @ fieldParentPtr ("interface" , io_r ) );
619
619
const chunk_len_ptr = switch (reader .state ) {
620
620
.ready = > return error .EndOfStream ,
621
621
.body_remaining_chunk_len = > | * x | x ,
@@ -659,7 +659,7 @@ pub const Reader = struct {
659
659
}
660
660
}
661
661
if (cp .chunk_len == 0 ) return parseTrailers (reader , 0 );
662
- const n = try in .discard (limit .min (.limited (cp .chunk_len )));
662
+ const n = try in .discard (limit .min (.limited64 (cp .chunk_len )));
663
663
chunk_len_ptr .* = .init (cp .chunk_len + 2 - n );
664
664
return n ;
665
665
},
@@ -675,7 +675,7 @@ pub const Reader = struct {
675
675
continue :len .head ;
676
676
},
677
677
else = > | remaining_chunk_len | {
678
- const n = try in .discard (limit .min (.limited (remaining_chunk_len .int () - 2 )));
678
+ const n = try in .discard (limit .min (.limited64 (remaining_chunk_len .int () - 2 )));
679
679
chunk_len_ptr .* = .init (remaining_chunk_len .int () - n );
680
680
return n ;
681
681
},
@@ -758,7 +758,7 @@ pub const BodyWriter = struct {
758
758
759
759
/// How many zeroes to reserve for hex-encoded chunk length.
760
760
const chunk_len_digits = 8 ;
761
- const max_chunk_len : usize = std .math .pow (usize , 16 , chunk_len_digits ) - 1 ;
761
+ const max_chunk_len : usize = std .math .pow (u64 , 16 , chunk_len_digits ) - 1 ;
762
762
const chunk_header_template = ("0" ** chunk_len_digits ) ++ "\r \n " ;
763
763
764
764
comptime {
@@ -918,7 +918,7 @@ pub const BodyWriter = struct {
918
918
}
919
919
920
920
pub fn contentLengthDrain (w : * Writer , data : []const []const u8 , splat : usize ) Error ! usize {
921
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
921
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
922
922
assert (! bw .isEliding ());
923
923
const out = bw .http_protocol_output ;
924
924
const n = try out .writeSplatHeader (w .buffered (), data , splat );
@@ -927,15 +927,15 @@ pub const BodyWriter = struct {
927
927
}
928
928
929
929
pub fn noneDrain (w : * Writer , data : []const []const u8 , splat : usize ) Error ! usize {
930
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
930
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
931
931
assert (! bw .isEliding ());
932
932
const out = bw .http_protocol_output ;
933
933
const n = try out .writeSplatHeader (w .buffered (), data , splat );
934
934
return w .consume (n );
935
935
}
936
936
937
937
pub fn elidingDrain (w : * Writer , data : []const []const u8 , splat : usize ) Error ! usize {
938
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
938
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
939
939
const slice = data [0 .. data .len - 1 ];
940
940
const pattern = data [slice .len ];
941
941
var written : usize = pattern .len * splat ;
@@ -949,7 +949,7 @@ pub const BodyWriter = struct {
949
949
}
950
950
951
951
pub fn elidingSendFile (w : * Writer , file_reader : * File.Reader , limit : std.Io.Limit ) Writer.FileError ! usize {
952
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
952
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
953
953
if (File .Handle == void ) return error .Unimplemented ;
954
954
if (builtin .zig_backend == .stage2_aarch64 ) return error .Unimplemented ;
955
955
switch (bw .state ) {
@@ -976,15 +976,15 @@ pub const BodyWriter = struct {
976
976
977
977
/// Returns `null` if size cannot be computed without making any syscalls.
978
978
pub fn noneSendFile (w : * Writer , file_reader : * File.Reader , limit : std.Io.Limit ) Writer.FileError ! usize {
979
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
979
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
980
980
assert (! bw .isEliding ());
981
981
const out = bw .http_protocol_output ;
982
982
const n = try out .sendFileHeader (w .buffered (), file_reader , limit );
983
983
return w .consume (n );
984
984
}
985
985
986
986
pub fn contentLengthSendFile (w : * Writer , file_reader : * File.Reader , limit : std.Io.Limit ) Writer.FileError ! usize {
987
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
987
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
988
988
assert (! bw .isEliding ());
989
989
const out = bw .http_protocol_output ;
990
990
const n = try out .sendFileHeader (w .buffered (), file_reader , limit );
@@ -993,7 +993,7 @@ pub const BodyWriter = struct {
993
993
}
994
994
995
995
pub fn chunkedSendFile (w : * Writer , file_reader : * File.Reader , limit : std.Io.Limit ) Writer.FileError ! usize {
996
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
996
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
997
997
assert (! bw .isEliding ());
998
998
const data_len = Writer .countSendFileLowerBound (w .end , file_reader , limit ) orelse {
999
999
// If the file size is unknown, we cannot lower to a `sendFile` since we would
@@ -1041,7 +1041,7 @@ pub const BodyWriter = struct {
1041
1041
}
1042
1042
1043
1043
pub fn chunkedDrain (w : * Writer , data : []const []const u8 , splat : usize ) Error ! usize {
1044
- const bw : * BodyWriter = @fieldParentPtr ("writer" , w );
1044
+ const bw : * BodyWriter = @alignCast ( @ fieldParentPtr ("writer" , w ) );
1045
1045
assert (! bw .isEliding ());
1046
1046
const out = bw .http_protocol_output ;
1047
1047
const data_len = w .end + Writer .countSplat (data , splat );
0 commit comments