@@ -56,28 +56,33 @@ def __init__(self, endian: Literal["little", "big"] = "little"):
5656 super ().__init__ ()
5757 self ._endian : Literal ["little" , "big" ] = endian
5858
59- def write_int (self , integer : int , length : int = 1 , signed : bool = False ):
59+ def write_tagged (self , tag : int , data : bytes ) -> None :
60+ self .write_ubyte (tag )
61+ self .write_uint32 (len (data ))
62+ self .write (data )
63+
64+ def write_int (self , integer : int , length : int = 1 , signed : bool = False ) -> None :
6065 self .write (integer .to_bytes (length , self ._endian , signed = signed ))
6166
62- def write_ubyte (self , integer : int ):
67+ def write_ubyte (self , integer : int ) -> None :
6368 self .write_int (integer )
6469
65- def write_byte (self , integer : int ):
70+ def write_byte (self , integer : int ) -> None :
6671 self .write_int (integer , signed = True )
6772
68- def write_uint16 (self , integer : int ):
73+ def write_uint16 (self , integer : int ) -> None :
6974 self .write_int (integer , 2 )
7075
71- def write_int16 (self , integer : int ):
76+ def write_int16 (self , integer : int ) -> None :
7277 self .write_int (integer , 2 , True )
7378
74- def write_uint32 (self , integer : int ):
79+ def write_uint32 (self , integer : int ) -> None :
7580 self .write_int (integer , 4 )
7681
77- def write_int32 (self , integer : int ):
82+ def write_int32 (self , integer : int ) -> None :
7883 self .write_int (integer , 4 , True )
7984
80- def write_string (self , string : str | None = None ) :
85+ def write_string (self , string : str | None ) -> None :
8186 if string is None :
8287 self .write_byte (0xFF )
8388 return
0 commit comments