| ... | ... | @@ -101,10 +101,8 @@ pub const Reader = struct { |
| 101 | 101 | /// Fill position of `buffer`. |
| 102 | 102 | end: usize, |
| 103 | 103 | |
| 104 | | pub const min_buffer_len = switch (native_os) { |
| 105 | | .windows => std.mem.alignForward(usize, max_name_bytes, @alignOf(usize)), |
| 106 | | else => 32, // TODO: what is this based on? |
| 107 | | }; |
| 104 | /// A length for `buffer` that allows all implementations to function. |
| 105 | pub const min_buffer_len = std.mem.alignForward(usize, max_name_bytes, @alignOf(usize)); |
| 108 | 106 | |
| 109 | 107 | pub const State = enum { |
| 110 | 108 | /// Indicates the next call to `read` should rewind and start over the |
| ... | ... | @@ -120,6 +118,7 @@ pub const Reader = struct { |
| 120 | 118 | SystemResources, |
| 121 | 119 | } || Io.UnexpectedError || Io.Cancelable; |
| 122 | 120 | |
| 121 | /// Asserts that `buffer` has length at least `min_buffer_len`. |
| 123 | 122 | pub fn init(dir: Dir, buffer: []align(@alignOf(usize)) u8) Reader { |
| 124 | 123 | assert(buffer.len >= min_buffer_len); |
| 125 | 124 | return .{ |
| ... | ... | @@ -164,7 +163,13 @@ pub const Reader = struct { |
| 164 | 163 | /// see `Walker`. |
| 165 | 164 | pub const Iterator = struct { |
| 166 | 165 | reader: Reader, |
| 167 | | reader_buffer: [2048]u8 align(@alignOf(usize)), |
| 166 | reader_buffer: [reader_buffer_len]u8 align(@alignOf(usize)), |
| 167 | |
| 168 | pub const reader_buffer_len = 2048; |
| 169 | |
| 170 | comptime { |
| 171 | assert(reader_buffer_len >= Reader.min_buffer_len); |
| 172 | } |
| 168 | 173 | |
| 169 | 174 | pub const Error = Reader.Error; |
| 170 | 175 | |