@@ -116,33 +116,33 @@ mod mmap {
116116
117117 // Read and discard chunk length.
118118 read. read_u64 :: < LittleEndian > ( )
119- . map_err ( |e| Error :: io_error ( "Cannot read embedding matrix chunk length" , e) ) ?;
119+ . map_err ( |e| Error :: read_error ( "Cannot read embedding matrix chunk length" , e) ) ?;
120120
121121 let rows = read
122122 . read_u64 :: < LittleEndian > ( )
123123 . map_err ( |e| {
124- Error :: io_error ( "Cannot read number of rows of the embedding matrix" , e)
124+ Error :: read_error ( "Cannot read number of rows of the embedding matrix" , e)
125125 } ) ?
126126 . try_into ( )
127127 . map_err ( |_| Error :: Overflow ) ?;
128128 let cols = read. read_u32 :: < LittleEndian > ( ) . map_err ( |e| {
129- Error :: io_error ( "Cannot read number of columns of the embedding matrix" , e)
129+ Error :: read_error ( "Cannot read number of columns of the embedding matrix" , e)
130130 } ) ? as usize ;
131131 let shape = Ix2 ( rows, cols) ;
132132
133133 // The components of the embedding matrix should be of type f32.
134134 f32:: ensure_data_type ( read) ?;
135135
136136 let n_padding = padding :: < f32 > ( read. seek ( SeekFrom :: Current ( 0 ) ) . map_err ( |e| {
137- Error :: io_error ( "Cannot get file position for computing padding" , e)
137+ Error :: read_error ( "Cannot get file position for computing padding" , e)
138138 } ) ?) ;
139139 read. seek ( SeekFrom :: Current ( n_padding as i64 ) )
140- . map_err ( |e| Error :: io_error ( "Cannot skip padding" , e) ) ?;
140+ . map_err ( |e| Error :: read_error ( "Cannot skip padding" , e) ) ?;
141141
142142 // Set up memory mapping.
143143 let matrix_len = shape. size ( ) * size_of :: < f32 > ( ) ;
144144 let offset = read. seek ( SeekFrom :: Current ( 0 ) ) . map_err ( |e| {
145- Error :: io_error (
145+ Error :: read_error (
146146 "Cannot get file position for memory mapping embedding matrix" ,
147147 e,
148148 )
@@ -153,12 +153,12 @@ mod mmap {
153153 . offset ( offset)
154154 . len ( matrix_len)
155155 . map ( & * read. get_ref ( ) )
156- . map_err ( |e| Error :: io_error ( "Cannot memory map embedding matrix" , e) ) ?
156+ . map_err ( |e| Error :: read_error ( "Cannot memory map embedding matrix" , e) ) ?
157157 } ;
158158
159159 // Position the reader after the matrix.
160160 read. seek ( SeekFrom :: Current ( matrix_len as i64 ) )
161- . map_err ( |e| Error :: io_error ( "Cannot skip embedding matrix" , e) ) ?;
161+ . map_err ( |e| Error :: read_error ( "Cannot skip embedding matrix" , e) ) ?;
162162
163163 Ok ( MmapArray { map, shape } )
164164 }
@@ -199,11 +199,10 @@ impl NdArray {
199199 {
200200 write
201201 . write_u32 :: < LittleEndian > ( ChunkIdentifier :: NdArray as u32 )
202- . map_err ( |e| Error :: io_error ( "Cannot write embedding matrix chunk identifier" , e) ) ?;
203- let n_padding =
204- padding :: < f32 > ( write. seek ( SeekFrom :: Current ( 0 ) ) . map_err ( |e| {
205- Error :: io_error ( "Cannot get file position for computing padding" , e)
206- } ) ?) ;
202+ . map_err ( |e| Error :: write_error ( "Cannot write embedding matrix chunk identifier" , e) ) ?;
203+ let n_padding = padding :: < f32 > ( write. seek ( SeekFrom :: Current ( 0 ) ) . map_err ( |e| {
204+ Error :: write_error ( "Cannot get file position for computing padding" , e)
205+ } ) ?) ;
207206 // Chunk size: rows (u64), columns (u32), type id (u32),
208207 // padding ([0,4) bytes), matrix.
209208 let chunk_len = size_of :: < u64 > ( )
@@ -213,20 +212,20 @@ impl NdArray {
213212 + ( data. nrows ( ) * data. ncols ( ) * size_of :: < f32 > ( ) ) ;
214213 write
215214 . write_u64 :: < LittleEndian > ( chunk_len as u64 )
216- . map_err ( |e| Error :: io_error ( "Cannot write embedding matrix chunk length" , e) ) ?;
215+ . map_err ( |e| Error :: write_error ( "Cannot write embedding matrix chunk length" , e) ) ?;
217216 write
218217 . write_u64 :: < LittleEndian > ( data. nrows ( ) as u64 )
219218 . map_err ( |e| {
220- Error :: io_error ( "Cannot write number of rows of the embedding matrix" , e)
219+ Error :: write_error ( "Cannot write number of rows of the embedding matrix" , e)
221220 } ) ?;
222221 write
223222 . write_u32 :: < LittleEndian > ( data. ncols ( ) as u32 )
224223 . map_err ( |e| {
225- Error :: io_error ( "Cannot write number of columns of the embedding matrix" , e)
224+ Error :: write_error ( "Cannot write number of columns of the embedding matrix" , e)
226225 } ) ?;
227226 write
228227 . write_u32 :: < LittleEndian > ( f32:: type_id ( ) )
229- . map_err ( |e| Error :: io_error ( "Cannot write embedding matrix type identifier" , e) ) ?;
228+ . map_err ( |e| Error :: write_error ( "Cannot write embedding matrix type identifier" , e) ) ?;
230229
231230 // Write padding, such that the embedding matrix starts on at
232231 // a multiple of the size of f32 (4 bytes). This is necessary
@@ -242,13 +241,13 @@ impl NdArray {
242241 let padding = vec ! [ 0 ; n_padding as usize ] ;
243242 write
244243 . write_all ( & padding)
245- . map_err ( |e| Error :: io_error ( "Cannot write padding" , e) ) ?;
244+ . map_err ( |e| Error :: write_error ( "Cannot write padding" , e) ) ?;
246245
247246 for row in data. outer_iter ( ) {
248247 for col in row. iter ( ) {
249- write
250- . write_f32 :: < LittleEndian > ( * col )
251- . map_err ( |e| Error :: io_error ( "Cannot write embedding matrix component" , e ) ) ?;
248+ write. write_f32 :: < LittleEndian > ( * col ) . map_err ( |e| {
249+ Error :: write_error ( "Cannot write embedding matrix component" , e )
250+ } ) ?;
252251 }
253252 }
254253
@@ -311,30 +310,32 @@ impl ReadChunk for NdArray {
311310
312311 // Read and discard chunk length.
313312 read. read_u64 :: < LittleEndian > ( )
314- . map_err ( |e| Error :: io_error ( "Cannot read embedding matrix chunk length" , e) ) ?;
313+ . map_err ( |e| Error :: read_error ( "Cannot read embedding matrix chunk length" , e) ) ?;
315314
316315 let rows = read
317316 . read_u64 :: < LittleEndian > ( )
318- . map_err ( |e| Error :: io_error ( "Cannot read number of rows of the embedding matrix" , e) ) ?
317+ . map_err ( |e| {
318+ Error :: read_error ( "Cannot read number of rows of the embedding matrix" , e)
319+ } ) ?
319320 . try_into ( )
320321 . map_err ( |_| Error :: Overflow ) ?;
321322 let cols = read. read_u32 :: < LittleEndian > ( ) . map_err ( |e| {
322- Error :: io_error ( "Cannot read number of columns of the embedding matrix" , e)
323+ Error :: read_error ( "Cannot read number of columns of the embedding matrix" , e)
323324 } ) ? as usize ;
324325
325326 // The components of the embedding matrix should be of type f32.
326327 f32:: ensure_data_type ( read) ?;
327328
328329 let n_padding =
329330 padding :: < f32 > ( read. seek ( SeekFrom :: Current ( 0 ) ) . map_err ( |e| {
330- Error :: io_error ( "Cannot get file position for computing padding" , e)
331+ Error :: read_error ( "Cannot get file position for computing padding" , e)
331332 } ) ?) ;
332333 read. seek ( SeekFrom :: Current ( n_padding as i64 ) )
333- . map_err ( |e| Error :: io_error ( "Cannot skip padding" , e) ) ?;
334+ . map_err ( |e| Error :: read_error ( "Cannot skip padding" , e) ) ?;
334335
335336 let mut data = Array2 :: zeros ( ( rows, cols) ) ;
336337 read. read_f32_into :: < LittleEndian > ( data. as_slice_mut ( ) . unwrap ( ) )
337- . map_err ( |e| Error :: io_error ( "Cannot read embedding matrix" , e) ) ?;
338+ . map_err ( |e| Error :: read_error ( "Cannot read embedding matrix" , e) ) ?;
338339
339340 Ok ( NdArray { inner : data } )
340341 }
0 commit comments