mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
std.Io: delete ChangeDetectionStream
dead code
This commit is contained in:
parent
d9a5a3e8c5
commit
03a6892189
@ -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;
|
||||
|
||||
|
||||
@ -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,
|
||||
};
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user