3
�
�^� c @ s� d dl Z d dlT ee�Zdd� ZG dd� dee��Ze jdkr\dZ eZ
G d d
� d
eed�Zn0e jdkr�d
Z eZG dd� deed�Z
ned��dS )� N)Z*c C sL t | t�rt| t�S t| t�r.t| j�| j S t| t �r<| S t
d| ��d S )Nz+This type does not support other endian: %s)Zhasattr�
_OTHER_ENDIANZgetattrZ
isinstance�_array_type�
_other_endianZ_type_Z_length_Z
issubclass� StructureZ TypeError)�typ� r �&/usr/lib64/python3.6/ctypes/_endian.pyr s
r c s e Zd Z� fdd�Z� ZS )�
_swapped_metac sb |dkrPg }x>|D ]6}|d }|d }|dd � }|j |t|�f| � qW |}t� j||� d S )NZ_fields_r i i )Zappendr Zsuper�__setattr__)ZselfZattrnameZvalueZfieldsZdescZnamer Zrest�Z __class__r r r s
z_swapped_meta.__setattr__)�__name__�
__module__�__qualname__r Z
__classcell__r r r
r r s r ZlittleZ__ctype_be__c @ � e Zd Zf ZdZdS )�BigEndianStructureN�r r r
Z __slots__Z_swappedbytes_r r r r r . � r )Z metaclassZbigZ__ctype_le__c @ r )�LittleEndianStructureNr r r r r r 7 r r zInvalid byteorder)
ZsysZctypesZtypeZArrayr r r r Z byteorderr r r ZRuntimeErrorr r r r Z<module> s