
    h                     @    d dl Z d dlZ G d de      Z G d de      Zy)    Nc                       e Zd Zy)BufferErrorN)__name__
__module____qualname__     S/jellyfin/media/venv/lib/python3.12/site-packages/copyparty/stolen/dnslib/buffer.pyr   r      s    r	   r   c                   D    e Zd ZddZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)Bufferc                 2    t        |      | _        d| _        y )Nr   )	bytearraydataoffset)selfr   s     r
   __init__zBuffer.__init__   s    dO	r	   c                 F    t        | j                        | j                  z
  S N)lenr   r   r   s    r
   	remainingzBuffer.remaining   s    499~++r	   c                 
   || j                         kD  r)t        d| j                  | j                         |fz        | j                  }| j                  |z   }| xj                  |z  c_        t        | j                  ||       S )Nz6Not enough bytes [offset=%d,remaining=%d,requested=%d])r   r   r   bytesr   )r   lengthstartends       r
   getz
Buffer.get   sx    DNN$$H;; 0&9:  kkF"vTYYuS)**r	   c                 @    t        j                  | j                        S r   )binasciihexlifyr   r   s    r
   hexz
Buffer.hex   s    		**r	   c                     | xj                   t        j                  |      z  c_         | xj                  t        j                  |g| z  c_        y r   )r   structcalcsizer   pack)r   fmtargss      r
   r%   zBuffer.pack!   s5    vs++		V[[,t,,	r	   c                 j    | xj                   t        |      z  c_         | xj                  |z  c_        y r   )r   r   r   )r   ss     r
   appendzBuffer.append%   s!    s1v		Q	r	   c                 f    t        j                  |g| }|| j                  ||t        |      z    y r   )r#   r%   r   r   )r   ptrr&   r'   r)   s        r
   updatezBuffer.update)   s-    KK#d#()		#c!f%r	   c           	         	 | j                  t        j                  |            }t        j                  ||      S # t        j                  $ r4 t        d|dt        j                        j                         d      w xY w)NzError unpacking struct 'z' <>)	r   r#   r$   unpackerrorr   r   r    decode)r   r&   r   s      r
   r0   zBuffer.unpack-   sm    	88FOOC01D==d++|| 	((.5579 	s
   9< ABc                 ,    t        | j                        S r   )r   r   r   s    r
   __len__zBuffer.__len__7   s    499~r	   N)r	   )r   r   r   r   r   r   r!   r%   r*   r-   r0   r4   r   r	   r
   r   r      s/    ,	++-*r	   r   )r   r#   	Exceptionr   objectr   r   r	   r
   <module>r7      s%     	) 	-V -r	   