@@ -1251,7 +1251,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
12511251 str:: from_utf8 ( self . tag ) . unwrap ( ) . to_owned ( )
12521252 }
12531253
1254- fn data ( & mut self , data_type : u32 ) -> Result < Option < ( usize , i32 ) > > {
1254+ fn data ( & mut self , data_type : u32 ) -> Result < Option < i32 > > {
12551255 let mut n: i32 = self . buffer . borrow ( ) . len ;
12561256 let c_str = ffi:: CString :: new ( self . tag ) . unwrap ( ) ;
12571257 let ret = unsafe {
@@ -1270,7 +1270,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
12701270 -1 => Err ( Error :: BcfUndefinedTag { tag : self . desc ( ) } ) ,
12711271 -2 => Err ( Error :: BcfUnexpectedType { tag : self . desc ( ) } ) ,
12721272 -3 => Ok ( None ) ,
1273- ret => Ok ( Some ( ( n as usize , ret) ) ) ,
1273+ ret => Ok ( Some ( ret) ) ,
12741274 }
12751275 }
12761276
@@ -1284,9 +1284,10 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
12841284 /// memory.
12851285 pub fn integer ( mut self ) -> Result < Option < BufferBacked < ' b , & ' b [ i32 ] , B > > > {
12861286 self . data ( htslib:: BCF_HT_INT ) . map ( |data| {
1287- data. map ( |( n, ret) | {
1288- let values =
1289- unsafe { slice:: from_raw_parts ( self . buffer . borrow ( ) . inner as * const i32 , n) } ;
1287+ data. map ( |ret| {
1288+ let values = unsafe {
1289+ slice:: from_raw_parts ( self . buffer . borrow ( ) . inner as * const i32 , ret as usize )
1290+ } ;
12901291 BufferBacked :: new ( & values[ ..ret as usize ] , self . buffer )
12911292 } )
12921293 } )
@@ -1302,9 +1303,10 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
13021303 /// memory.
13031304 pub fn float ( mut self ) -> Result < Option < BufferBacked < ' b , & ' b [ f32 ] , B > > > {
13041305 self . data ( htslib:: BCF_HT_REAL ) . map ( |data| {
1305- data. map ( |( n, ret) | {
1306- let values =
1307- unsafe { slice:: from_raw_parts ( self . buffer . borrow ( ) . inner as * const f32 , n) } ;
1306+ data. map ( |ret| {
1307+ let values = unsafe {
1308+ slice:: from_raw_parts ( self . buffer . borrow ( ) . inner as * const f32 , ret as usize )
1309+ } ;
13081310 BufferBacked :: new ( & values[ ..ret as usize ] , self . buffer )
13091311 } )
13101312 } )
@@ -1313,7 +1315,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
13131315 /// Get flags from tag. `false` if not set.
13141316 pub fn flag ( & mut self ) -> Result < bool > {
13151317 self . data ( htslib:: BCF_HT_FLAG ) . map ( |data| match data {
1316- Some ( ( _ , ret) ) => ret == 1 ,
1318+ Some ( ret) => ret == 1 ,
13171319 None => false ,
13181320 } )
13191321 }
@@ -1326,7 +1328,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Info<'a, B> {
13261328 /// memory.
13271329 pub fn string ( mut self ) -> Result < Option < BufferBacked < ' b , Vec < & ' b [ u8 ] > , B > > > {
13281330 self . data ( htslib:: BCF_HT_STR ) . map ( |data| {
1329- data. map ( |( _ , ret) | {
1331+ data. map ( |ret| {
13301332 BufferBacked :: new (
13311333 unsafe {
13321334 slice:: from_raw_parts ( self . buffer . borrow ( ) . inner as * const u8 , ret as usize )
@@ -1402,7 +1404,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Format<'a, B> {
14021404 }
14031405
14041406 /// Read and decode format data into a given type.
1405- fn data ( & mut self , data_type : u32 ) -> Result < ( usize , i32 ) > {
1407+ fn data ( & mut self , data_type : u32 ) -> Result < i32 > {
14061408 let mut n: i32 = self . buffer . borrow ( ) . len ;
14071409 let c_str = ffi:: CString :: new ( self . tag ) . unwrap ( ) ;
14081410 let ret = unsafe {
@@ -1423,7 +1425,7 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Format<'a, B> {
14231425 tag : self . desc ( ) ,
14241426 record : self . record . desc ( ) ,
14251427 } ) ,
1426- ret => Ok ( ( n as usize , ret) ) ,
1428+ ret => Ok ( ret) ,
14271429 }
14281430 }
14291431
@@ -1434,12 +1436,17 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Format<'a, B> {
14341436 /// the BufferBacked object is already dropped, you will access unallocated
14351437 /// memory.
14361438 pub fn integer ( mut self ) -> Result < BufferBacked < ' b , Vec < & ' b [ i32 ] > , B > > {
1437- self . data ( htslib:: BCF_HT_INT ) . map ( |( n , _ ) | {
1439+ self . data ( htslib:: BCF_HT_INT ) . map ( |ret | {
14381440 BufferBacked :: new (
1439- unsafe { slice:: from_raw_parts ( self . buffer . borrow_mut ( ) . inner as * const i32 , n) }
1440- . chunks ( self . values_per_sample ( ) )
1441- . map ( |s| trim_slice ( s) )
1442- . collect ( ) ,
1441+ unsafe {
1442+ slice:: from_raw_parts (
1443+ self . buffer . borrow_mut ( ) . inner as * const i32 ,
1444+ ret as usize ,
1445+ )
1446+ }
1447+ . chunks ( self . values_per_sample ( ) )
1448+ . map ( |s| trim_slice ( s) )
1449+ . collect ( ) ,
14431450 self . buffer ,
14441451 )
14451452 } )
@@ -1452,12 +1459,17 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Format<'a, B> {
14521459 /// the BufferBacked object is already dropped, you will access unallocated
14531460 /// memory.
14541461 pub fn float ( mut self ) -> Result < BufferBacked < ' b , Vec < & ' b [ f32 ] > , B > > {
1455- self . data ( htslib:: BCF_HT_REAL ) . map ( |( n , _ ) | {
1462+ self . data ( htslib:: BCF_HT_REAL ) . map ( |ret | {
14561463 BufferBacked :: new (
1457- unsafe { slice:: from_raw_parts ( self . buffer . borrow_mut ( ) . inner as * const f32 , n) }
1458- . chunks ( self . values_per_sample ( ) )
1459- . map ( |s| trim_slice ( s) )
1460- . collect ( ) ,
1464+ unsafe {
1465+ slice:: from_raw_parts (
1466+ self . buffer . borrow_mut ( ) . inner as * const f32 ,
1467+ ret as usize ,
1468+ )
1469+ }
1470+ . chunks ( self . values_per_sample ( ) )
1471+ . map ( |s| trim_slice ( s) )
1472+ . collect ( ) ,
14611473 self . buffer ,
14621474 )
14631475 } )
@@ -1470,17 +1482,19 @@ impl<'a, 'b, B: BorrowMut<Buffer> + Borrow<Buffer> + 'b> Format<'a, B> {
14701482 /// the BufferBacked object is already dropped, you will access unallocated
14711483 /// memory.
14721484 pub fn string ( mut self ) -> Result < BufferBacked < ' b , Vec < & ' b [ u8 ] > , B > > {
1473- self . data ( htslib:: BCF_HT_STR ) . map ( |( n , _ ) | {
1485+ self . data ( htslib:: BCF_HT_STR ) . map ( |ret | {
14741486 BufferBacked :: new (
1475- unsafe { slice:: from_raw_parts ( self . buffer . borrow_mut ( ) . inner as * const u8 , n) }
1476- . chunks ( self . values_per_sample ( ) )
1477- . map ( |s| {
1478- // stop at zero character
1479- s. split ( |c| * c == 0u8 )
1480- . next ( )
1481- . expect ( "Bug: returned string should not be empty." )
1482- } )
1483- . collect ( ) ,
1487+ unsafe {
1488+ slice:: from_raw_parts ( self . buffer . borrow_mut ( ) . inner as * const u8 , ret as usize )
1489+ }
1490+ . chunks ( self . values_per_sample ( ) )
1491+ . map ( |s| {
1492+ // stop at zero character
1493+ s. split ( |c| * c == 0u8 )
1494+ . next ( )
1495+ . expect ( "Bug: returned string should not be empty." )
1496+ } )
1497+ . collect ( ) ,
14841498 self . buffer ,
14851499 )
14861500 } )
0 commit comments