diff --git a/src/postings/serializer.rs b/src/postings/serializer.rs index a1eac5dd6..52ff8df2d 100644 --- a/src/postings/serializer.rs +++ b/src/postings/serializer.rs @@ -159,7 +159,7 @@ impl<'a> FieldSerializer<'a> { let (filepos, offset) = self.positions_serializer_opt .as_ref() .map(|positions_serializer| positions_serializer.addr()) - .unwrap_or((0u32, 0u8)); + .unwrap_or((0u64, 0u8)); TermInfo { doc_freq: 0, postings_offset: self.postings_serializer.addr(), @@ -311,8 +311,8 @@ impl PostingsSerializer { self.postings_write.flush() } - fn addr(&self) -> u32 { - self.postings_write.written_bytes() as u32 + fn addr(&self) -> u64 { + self.postings_write.written_bytes() as u64 } fn clear(&mut self) { @@ -337,8 +337,8 @@ impl PositionSerializer { } } - fn addr(&self) -> (u32, u8) { - (self.write.written_bytes() as u32, self.buffer.len() as u8) + fn addr(&self) -> (u64, u8) { + (self.write.written_bytes() as u64, self.buffer.len() as u8) } fn write_block(&mut self) -> io::Result<()> { diff --git a/src/postings/term_info.rs b/src/postings/term_info.rs index 16ee0516b..ca34711ef 100644 --- a/src/postings/term_info.rs +++ b/src/postings/term_info.rs @@ -16,9 +16,9 @@ pub struct TermInfo { /// Number of documents in the segment containing the term pub doc_freq: u32, /// Offset within the postings (`.idx`) file. - pub postings_offset: u32, + pub postings_offset: u64, /// Offset within the position (`.pos`) file. - pub positions_offset: u32, + pub positions_offset: u64, /// Offset within the position block. pub positions_inner_offset: u8, } @@ -33,8 +33,8 @@ impl BinarySerializable for TermInfo { fn deserialize(reader: &mut R) -> io::Result { let doc_freq = u32::deserialize(reader)?; - let postings_offset = u32::deserialize(reader)?; - let positions_offset = u32::deserialize(reader)?; + let postings_offset = u64::deserialize(reader)?; + let positions_offset = u64::deserialize(reader)?; let positions_inner_offset = u8::deserialize(reader)?; Ok(TermInfo { doc_freq, diff --git a/src/store/reader.rs b/src/store/reader.rs index 1975515a8..14c9b5d25 100644 --- a/src/store/reader.rs +++ b/src/store/reader.rs @@ -27,10 +27,10 @@ impl StoreReader { let (data_source, offset_index_source, max_doc) = split_source(data); StoreReader { data: data_source, - offset_index_source: offset_index_source, + offset_index_source, current_block_offset: RefCell::new(usize::max_value()), current_block: RefCell::new(Vec::new()), - max_doc: max_doc, + max_doc, } } @@ -49,9 +49,9 @@ impl StoreReader { let block_length = u32::deserialize(&mut cursor).unwrap(); let block_array: &[u8] = &total_buffer [(block_offset + 4 as usize)..(block_offset + 4 + block_length as usize)]; - let mut lz4_decoder = try!(lz4::Decoder::new(block_array)); + let mut lz4_decoder = lz4::Decoder::new(block_array)?; *self.current_block_offset.borrow_mut() = usize::max_value(); - try!(lz4_decoder.read_to_end(&mut current_block_mut).map(|_| ())); + lz4_decoder.read_to_end(&mut current_block_mut).map(|_| ())?; *self.current_block_offset.borrow_mut() = block_offset; } Ok(()) @@ -70,7 +70,7 @@ impl StoreReader { let current_block_mut = self.current_block.borrow_mut(); let mut cursor = ¤t_block_mut[..]; for _ in first_doc_id..doc_id { - let block_length = try!(u32::deserialize(&mut cursor)); + let block_length = u32::deserialize(&mut cursor)?; cursor = &cursor[block_length as usize..]; } u32::deserialize(&mut cursor)?; diff --git a/src/termdict/mod.rs b/src/termdict/mod.rs index 851f58c99..0a9d1dc11 100644 --- a/src/termdict/mod.rs +++ b/src/termdict/mod.rs @@ -133,7 +133,6 @@ pub trait TermStreamer: Sized { fn advance(&mut self) -> bool; /// Accesses the current key. - /// /// `.key()` should return the key that was returned /// by the `.next()` method. /// @@ -204,11 +203,11 @@ mod tests { const BLOCK_SIZE: usize = 1_500; - fn make_term_info(val: u32) -> TermInfo { + fn make_term_info(val: u64) -> TermInfo { TermInfo { - doc_freq: val, - positions_offset: val * 2u32, - postings_offset: val * 3u32, + doc_freq: val as u32, + positions_offset: val * 2u64, + postings_offset: val * 3u64, positions_inner_offset: 5u8, } } @@ -223,10 +222,10 @@ mod tests { let mut term_dictionary_builder = TermDictionaryBuilderImpl::new(write, field_type).unwrap(); term_dictionary_builder - .insert("abc".as_bytes(), &make_term_info(34u32)) + .insert("abc".as_bytes(), &make_term_info(34u64)) .unwrap(); term_dictionary_builder - .insert("abcd".as_bytes(), &make_term_info(346u32)) + .insert("abcd".as_bytes(), &make_term_info(346u64)) .unwrap(); term_dictionary_builder.finish().unwrap(); } @@ -312,7 +311,7 @@ mod tests { TermDictionaryBuilderImpl::new(vec![], field_type).unwrap(); for &(ref id, ref i) in &ids { term_dictionary_builder - .insert(id.as_bytes(), &make_term_info(*i)) + .insert(id.as_bytes(), &make_term_info(*i as u64)) .unwrap(); } term_dictionary_builder.finish().unwrap() @@ -325,7 +324,7 @@ mod tests { while let Some((streamer_k, streamer_v)) = streamer.next() { let &(ref key, ref v) = &ids[i]; assert_eq!(streamer_k.as_ref(), key.as_bytes()); - assert_eq!(streamer_v, &make_term_info(*v)); + assert_eq!(streamer_v, &make_term_info(*v as u64)); i += 1; } } @@ -377,7 +376,7 @@ mod tests { TermDictionaryBuilderImpl::new(vec![], field_type).unwrap(); for &(ref id, ref i) in &ids { term_dictionary_builder - .insert(id.as_bytes(), &make_term_info(*i)) + .insert(id.as_bytes(), &make_term_info(*i as u64)) .unwrap(); } term_dictionary_builder.finish().unwrap() @@ -398,7 +397,7 @@ mod tests { let &(ref key, ref v) = &ids[i + j]; assert_eq!(str::from_utf8(streamer_k.as_ref()).unwrap(), key); assert_eq!(streamer_v.doc_freq, *v); - assert_eq!(streamer_v, &make_term_info(*v)); + assert_eq!(streamer_v, &make_term_info(*v as u64)); } } } @@ -447,7 +446,7 @@ mod tests { for i in 0u8..10u8 { let number_arr = [i; 1]; term_dictionary_builder - .insert(&number_arr, &make_term_info(i as u32)) + .insert(&number_arr, &make_term_info(i as u64)) .unwrap(); } term_dictionary_builder.finish().unwrap()