o
    װi$                     @   s\   d dl mZmZmZ dZG dd deZG dd deZdd Zd	d
 Zdd Z	dd Z
dS )    )	Structurec_intc_byte   c                   @   &   e Zd Zdefdefdee fgZdS )action_tactionlengthvalueN__name__
__module____qualname__r   r   _VALUE_BUFFER_SIZE_fields_ r   r   P/home/ubuntu/.local/lib/python3.10/site-packages/cupyx/distributed/_klv_utils.pyr      s
    
r   c                   @   r   )result_action_tstatusr	   r
   Nr   r   r   r   r   r      s
    
r   c                 C   R   t |}t|tdtt |   }tt |}tt | dks#J t| ||S N    r   )len	bytearrayr   r   from_bufferr   )r   r
   l_vr   r   r   get_action_t      r   c                 C   r   r   )r   r   r   r   r   r   )r   r
   r   r   r   r   get_result_action_t   r   r   c                 C   s`   t | tu rtd}|t|  }|S t | tu r)td}|t| jddd }|S td|  )N   b   i   big)	byteorderzinvalid type for self.value )typebytesr   intto_bytes
ValueError)r
   vr   r   r   create_value_bytes(   s   r*   c                 C   sd   | dd dkr t | dd  dksJ t| dd  d} | S | dd dkr0t| dd  } | S )Nr      r    r!   r"   r   )r   r&   
from_bytesr%   )r)   r   r   r   get_value_from_bytes4   s   r-   N)ctypesr   r   r   r   r   r   r   r   r*   r-   r   r   r   r   <module>   s    		