@@ -62,29 +62,27 @@ impl SimpleEntry {
6262 self . value_data
6363 }
6464
65- pub fn to_vec ( & self ) -> Vec < u8 > {
65+ pub fn to_vec ( & self ) -> Result < Vec < u8 > > {
6666 let mut out = Vec :: new ( ) ;
6767
6868 // Header size
69- out. write_u16 :: < LittleEndian > ( 8 ) . unwrap ( ) ;
69+ out. write_u16 :: < LittleEndian > ( 8 ) ? ;
7070
7171 // Flags => Simple entry
72- out. write_u16 :: < LittleEndian > ( 0 ) . unwrap ( ) ;
72+ out. write_u16 :: < LittleEndian > ( 0 ) ? ;
7373
7474 // Key index
75- out. write_u32 :: < LittleEndian > ( self . get_key ( ) as u32 )
76- . unwrap ( ) ;
75+ out. write_u32 :: < LittleEndian > ( self . get_key ( ) as u32 ) ?;
7776
7877 // Value type
79- out. write_u16 :: < LittleEndian > ( 8 ) . unwrap ( ) ;
80- out. write_u8 ( 0 ) . unwrap ( ) ;
81- out. write_u8 ( self . get_type ( ) ) . unwrap ( ) ;
78+ out. write_u16 :: < LittleEndian > ( 8 ) ? ;
79+ out. write_u8 ( 0 ) ? ;
80+ out. write_u8 ( self . get_type ( ) ) ? ;
8281
8382 // Value
84- out. write_u32 :: < LittleEndian > ( self . get_value ( ) as u32 )
85- . unwrap ( ) ;
83+ out. write_u32 :: < LittleEndian > ( self . get_value ( ) as u32 ) ?;
8684
87- out
85+ Ok ( out)
8886 }
8987}
9088
@@ -128,45 +126,44 @@ impl ComplexEntry {
128126 & self . entries
129127 }
130128
131- pub fn to_vec ( & self ) -> Vec < u8 > {
129+ pub fn to_vec ( & self ) -> Result < Vec < u8 > > {
132130 let mut out = Vec :: new ( ) ;
133131
134132 // Header size
135- out. write_u16 :: < LittleEndian > ( 16 ) . unwrap ( ) ;
133+ out. write_u16 :: < LittleEndian > ( 16 ) ? ;
136134
137135 // Flags => Complex entry
138- out. write_u16 :: < LittleEndian > ( 1 ) . unwrap ( ) ;
136+ out. write_u16 :: < LittleEndian > ( 1 ) ? ;
139137
140138 // Key index
141- out. write_u32 :: < LittleEndian > ( self . key_index ) . unwrap ( ) ;
139+ out. write_u32 :: < LittleEndian > ( self . key_index ) ? ;
142140
143141 // Parent entry
144- out. write_u32 :: < LittleEndian > ( self . parent_entry_id ) . unwrap ( ) ;
142+ out. write_u32 :: < LittleEndian > ( self . parent_entry_id ) ? ;
145143
146144 // Children entry amount
147145 let children_amount = self . entries . len ( ) as u32 ;
148146 if children_amount == 0 {
149- out. write_u32 :: < LittleEndian > ( 0xFFFFFFFF ) . unwrap ( ) ;
147+ out. write_u32 :: < LittleEndian > ( 0xFFFFFFFF ) ? ;
150148 } else {
151- out. write_u32 :: < LittleEndian > ( self . entries . len ( ) as u32 )
152- . unwrap ( ) ;
149+ out. write_u32 :: < LittleEndian > ( self . entries . len ( ) as u32 ) ?;
153150 }
154151
155152 for e in & self . entries {
156153 // TODO: Unify this with simple entry without header
157154 // Key index
158- out. write_u32 :: < LittleEndian > ( e. get_id ( ) ) . unwrap ( ) ;
155+ out. write_u32 :: < LittleEndian > ( e. get_id ( ) ) ? ;
159156
160157 // Value type
161- out. write_u16 :: < LittleEndian > ( 8 ) . unwrap ( ) ;
162- out. write_u8 ( 0 ) . unwrap ( ) ;
163- out. write_u8 ( e. get_type ( ) ) . unwrap ( ) ;
158+ out. write_u16 :: < LittleEndian > ( 8 ) ? ;
159+ out. write_u8 ( 0 ) ? ;
160+ out. write_u8 ( e. get_type ( ) ) ? ;
164161
165162 // Value
166- out. write_u32 :: < LittleEndian > ( e. get_value ( ) as u32 ) . unwrap ( ) ;
163+ out. write_u32 :: < LittleEndian > ( e. get_value ( ) as u32 ) ? ;
167164 }
168165
169- out
166+ Ok ( out)
170167 }
171168}
172169
@@ -215,11 +212,11 @@ impl Entry {
215212 }
216213 }
217214
218- pub fn to_vec ( & self ) -> Vec < u8 > {
215+ pub fn to_vec ( & self ) -> Result < Vec < u8 > > {
219216 match * self {
220217 Entry :: Complex ( ref complex) => complex. to_vec ( ) ,
221218 Entry :: Simple ( ref simple) => simple. to_vec ( ) ,
222- Entry :: Empty ( _, _) => Vec :: new ( ) ,
219+ Entry :: Empty ( _, _) => Ok ( Vec :: new ( ) ) ,
223220 }
224221 }
225222}
0 commit comments