authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-20 17:13:23-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-22 09:41:43-07:00
log03a6892189891f1566b9e63780129834bea7eb1e
tree2cea05a9296db40ff0c6c25a57d75255afe82315
parentd9a5a3e8c55b501afe0d9df232d613f6b445f14f

std.Io: delete ChangeDetectionStream

dead code

2 files changed, 0 insertions(+), 58 deletions(-)

lib/std/Io.zig-3
......@@ -462,9 +462,6 @@ pub const bitReader = @import("Io/bit_reader.zig").bitReader;
462462pub const BitWriter = @import("Io/bit_writer.zig").BitWriter;
463463pub const bitWriter = @import("Io/bit_writer.zig").bitWriter;
464464
465pub const ChangeDetectionStream = @import("Io/change_detection_stream.zig").ChangeDetectionStream;
466pub const changeDetectionStream = @import("Io/change_detection_stream.zig").changeDetectionStream;
467
468465pub const FindByteWriter = @import("Io/find_byte_writer.zig").FindByteWriter;
469466pub const findByteWriter = @import("Io/find_byte_writer.zig").findByteWriter;
470467
lib/std/Io/change_detection_stream.zig deleted-55
......@@ -1,55 +0,0 @@
1const std = @import("../std.zig");
2const io = std.io;
3const mem = std.mem;
4const assert = std.debug.assert;
5
6/// Used to detect if the data written to a stream differs from a source buffer
7pub fn ChangeDetectionStream(comptime WriterType: type) type {
8 return struct {
9 const Self = @This();
10 pub const Error = WriterType.Error;
11 pub const Writer = io.GenericWriter(*Self, Error, write);
12
13 anything_changed: bool,
14 underlying_writer: WriterType,
15 source_index: usize,
16 source: []const u8,
17
18 pub fn writer(self: *Self) Writer {
19 return .{ .context = self };
20 }
21
22 fn write(self: *Self, bytes: []const u8) Error!usize {
23 if (!self.anything_changed) {
24 const end = self.source_index + bytes.len;
25 if (end > self.source.len) {
26 self.anything_changed = true;
27 } else {
28 const src_slice = self.source[self.source_index..end];
29 self.source_index += bytes.len;
30 if (!mem.eql(u8, bytes, src_slice)) {
31 self.anything_changed = true;
32 }
33 }
34 }
35
36 return self.underlying_writer.write(bytes);
37 }
38
39 pub fn changeDetected(self: *Self) bool {
40 return self.anything_changed or (self.source_index != self.source.len);
41 }
42 };
43}
44
45pub fn changeDetectionStream(
46 source: []const u8,
47 underlying_writer: anytype,
48) ChangeDetectionStream(@TypeOf(underlying_writer)) {
49 return ChangeDetectionStream(@TypeOf(underlying_writer)){
50 .anything_changed = false,
51 .underlying_writer = underlying_writer,
52 .source_index = 0,
53 .source = source,
54 };
55}