Commit 03a6892189
Changed files (2)
lib
lib/std/Io/change_detection_stream.zig
@@ -1,55 +0,0 @@
-const std = @import("../std.zig");
-const io = std.io;
-const mem = std.mem;
-const assert = std.debug.assert;
-
-/// Used to detect if the data written to a stream differs from a source buffer
-pub fn ChangeDetectionStream(comptime WriterType: type) type {
- return struct {
- const Self = @This();
- pub const Error = WriterType.Error;
- pub const Writer = io.GenericWriter(*Self, Error, write);
-
- anything_changed: bool,
- underlying_writer: WriterType,
- source_index: usize,
- source: []const u8,
-
- pub fn writer(self: *Self) Writer {
- return .{ .context = self };
- }
-
- fn write(self: *Self, bytes: []const u8) Error!usize {
- if (!self.anything_changed) {
- const end = self.source_index + bytes.len;
- if (end > self.source.len) {
- self.anything_changed = true;
- } else {
- const src_slice = self.source[self.source_index..end];
- self.source_index += bytes.len;
- if (!mem.eql(u8, bytes, src_slice)) {
- self.anything_changed = true;
- }
- }
- }
-
- return self.underlying_writer.write(bytes);
- }
-
- pub fn changeDetected(self: *Self) bool {
- return self.anything_changed or (self.source_index != self.source.len);
- }
- };
-}
-
-pub fn changeDetectionStream(
- source: []const u8,
- underlying_writer: anytype,
-) ChangeDetectionStream(@TypeOf(underlying_writer)) {
- return ChangeDetectionStream(@TypeOf(underlying_writer)){
- .anything_changed = false,
- .underlying_writer = underlying_writer,
- .source_index = 0,
- .source = source,
- };
-}
lib/std/Io.zig
@@ -462,9 +462,6 @@ pub const bitReader = @import("Io/bit_reader.zig").bitReader;
pub const BitWriter = @import("Io/bit_writer.zig").BitWriter;
pub const bitWriter = @import("Io/bit_writer.zig").bitWriter;
-pub const ChangeDetectionStream = @import("Io/change_detection_stream.zig").ChangeDetectionStream;
-pub const changeDetectionStream = @import("Io/change_detection_stream.zig").changeDetectionStream;
-
pub const FindByteWriter = @import("Io/find_byte_writer.zig").FindByteWriter;
pub const findByteWriter = @import("Io/find_byte_writer.zig").findByteWriter;