File tree Expand file tree Collapse file tree 1 file changed +8
-17
lines changed
Expand file tree Collapse file tree 1 file changed +8
-17
lines changed Original file line number Diff line number Diff line change @@ -55,24 +55,15 @@ impl MetadataRoundtrip for IndividualMetadata {
5555 let size: [ u8 ; std:: mem:: size_of :: < usize > ( ) ] =
5656 md[ 0 ..std:: mem:: size_of :: < usize > ( ) ] . try_into ( ) . unwrap ( ) ;
5757 let size = usize:: from_le_bytes ( size) ;
58- let name =
59- str:: from_utf8 ( & md[ std:: mem:: size_of :: < usize > ( ) ..size + std:: mem:: size_of :: < usize > ( ) ] )
60- . unwrap ( )
61- . to_string ( ) ;
62- let offset = size + std:: mem:: size_of :: < usize > ( ) ;
63- let size: [ u8 ; std:: mem:: size_of :: < usize > ( ) ] = md
64- [ offset..offset + std:: mem:: size_of :: < usize > ( ) ]
65- . try_into ( )
66- . unwrap ( ) ;
67- let size = usize:: from_le_bytes ( size) ;
68- let mut offset = offset + std:: mem:: size_of :: < usize > ( ) ;
58+ let md = & md[ std:: mem:: size_of :: < usize > ( ) ..] ;
59+ let name = str:: from_utf8 ( & md[ 0 ..size] ) . unwrap ( ) . to_string ( ) ;
60+ let md = & md[ size..] ;
61+ let md = & md[ std:: mem:: size_of :: < usize > ( ) ..] ;
6962 let mut phenotypes = vec ! [ ] ;
70- for _ in 0 ..size {
71- let p: [ u8 ; 4 ] = md[ offset..offset + std:: mem:: size_of :: < i32 > ( ) ]
72- . try_into ( )
73- . unwrap ( ) ;
74- phenotypes. push ( i32:: from_le_bytes ( p) ) ;
75- offset += std:: mem:: size_of :: < i32 > ( ) ;
63+ let chunks = md. chunks_exact ( std:: mem:: size_of :: < i32 > ( ) ) ;
64+ for c in chunks {
65+ let a: [ u8 ; std:: mem:: size_of :: < i32 > ( ) ] = c. try_into ( ) . unwrap ( ) ;
66+ phenotypes. push ( i32:: from_le_bytes ( a) ) ;
7667 }
7768 Ok ( Self { name, phenotypes } )
7869 }
You can’t perform that action at this time.
0 commit comments