mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +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 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;
|
||||||
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