@@ -118,6 +118,9 @@ def size(self):
118118    packer_u4le  =  struct .Struct ('<I' )
119119    packer_u8le  =  struct .Struct ('<Q' )
120120
121+     # ------------------------------------------------------------------------ 
122+     # Reading 
123+     # ------------------------------------------------------------------------ 
121124    # ------------------------------------------------------------------------ 
122125    # Signed 
123126    # ------------------------------------------------------------------------ 
@@ -213,6 +216,95 @@ def read_f4le(self):
213216    def  read_f8le (self ):
214217        return  KaitaiStream .packer_f8le .unpack (self .read_bytes (8 ))[0 ]
215218
219+     # ------------------------------------------------------------------------ 
220+     # Writing 
221+     # ------------------------------------------------------------------------ 
222+     # ------------------------------------------------------------------------ 
223+     # Signed 
224+     # ------------------------------------------------------------------------ 
225+ 
226+     def  write_s1 (self , data ):
227+         return  self .write_bytes (KaitaiStream .packer_s1 .pack (data ))
228+ 
229+     # ........................................................................ 
230+     # Big-endian 
231+     # ........................................................................ 
232+ 
233+     def  write_s2be (self , data ):
234+         return  self .write_bytes (KaitaiStream .packer_s2be .pack (data ))
235+ 
236+     def  write_s4be (self , data ):
237+         return  self .write_bytes (KaitaiStream .packer_s4be .pack (data ))
238+ 
239+     def  write_s8be (self , data ):
240+         return  self .write_bytes (KaitaiStream .packer_s8be .pack (data ))
241+ 
242+     # ........................................................................ 
243+     # Little-endian 
244+     # ........................................................................ 
245+ 
246+     def  write_s2le (self , data ):
247+         return  self .write_bytes (KaitaiStream .packer_s2le .pack (data ))
248+ 
249+     def  write_s4le (self , data ):
250+         return  self .write_bytes (KaitaiStream .packer_s4le .pack (data ))
251+ 
252+     def  write_s8le (self , data ):
253+         return  self .write_bytes (KaitaiStream .packer_s8le .pack (data ))
254+ 
255+     # ------------------------------------------------------------------------ 
256+     # Unsigned 
257+     # ------------------------------------------------------------------------ 
258+ 
259+     def  write_u1 (self , data ):
260+         return  self .write_bytes (KaitaiStream .packer_u1 .pack (data ))
261+ 
262+     # ........................................................................ 
263+     # Big-endian 
264+     # ........................................................................ 
265+ 
266+     def  write_u2be (self , data ):
267+         return  self .write_bytes (KaitaiStream .packer_u2be .pack (data ))
268+ 
269+     def  write_u4be (self , data ):
270+         return  self .write_bytes (KaitaiStream .packer_u4be .pack (data ))
271+ 
272+     def  write_u8be (self , data ):
273+         return  self .write_bytes (KaitaiStream .packer_u8be .pack (data ))
274+ 
275+     # ........................................................................ 
276+     # Little-endian 
277+     # ........................................................................ 
278+ 
279+     def  write_u2le (self , data ):
280+         return  self .write_bytes (KaitaiStream .packer_u2le .pack (data ))
281+ 
282+     def  write_u4le (self , data ):
283+         return  self .write_bytes (KaitaiStream .packer_u4le .pack (data ))
284+ 
285+     def  write_u8le (self , data ):
286+         return  self .write_bytes (KaitaiStream .packer_u8le .pack (data ))
287+ 
288+     # ........................................................................ 
289+     # Big-endian 
290+     # ........................................................................ 
291+ 
292+     def  write_f4be (self , data ):
293+         return  self .write_bytes (KaitaiStream .packer_f4be .pack (data ))
294+ 
295+     def  write_f8be (self , data ):
296+         return  self .write_bytes (KaitaiStream .packer_f8be .pack (data ))
297+ 
298+     # ........................................................................ 
299+     # Little-endian 
300+     # ........................................................................ 
301+ 
302+     def  write_f4le (self , data ):
303+         return  self .write_bytes (KaitaiStream .packer_f4le .pack (data ))
304+ 
305+     def  write_f8le (self , data ):
306+         return  self .write_bytes (KaitaiStream .packer_f8le .pack (data ))
307+ 
216308    # ======================================================================== 
217309    # Unaligned bit values 
218310    # ======================================================================== 
@@ -293,6 +385,21 @@ def read_bytes(self, n):
293385            )
294386        return  r 
295387
388+     def  write_bytes (self , data , pad , padding ):
389+         if  data  is  None :
390+             return 
391+         nb  =  len (data )
392+         if  nb  ==  0  and  pad  <  1 :
393+             return 
394+         if  nb  >  0  and  self ._io .write (data ) !=  nb :
395+             raise  Exception (
396+                 "not all of %d bytes written"  % 
397+                 (nb ,)
398+             )
399+         if  pad  >  0  and  padding  is  not None :
400+             self ._io .write (padding  *  pad )
401+         return 
402+ 
296403    def  read_bytes_full (self ):
297404        return  self ._io .read ()
298405
0 commit comments