o
    ç÷¡gc  ã                   @   s¼   d dl Z d dlZd dlmZmZ d dlmZmZ G dd„ ded�Zee Z	G dd„ deƒZ
G d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZdS )é    N)ÚABCMetaÚabstractmethod)ÚSupportsBytesÚTypec                   @   s@   e Zd Zeededefdd„ƒƒZeededefdd„ƒƒZdS )Ú_EncoderÚdataÚreturnc                 C   ó   dS )z#Transform raw data to encoded data.N© ©r   r
   r
   ú8/usr/local/lib/python3.10/dist-packages/nacl/encoding.pyÚencode   ó    z_Encoder.encodec                 C   r	   )z„Transform encoded data back to raw data.

        Decoding after encoding should be a no-op, i.e. `decode(encode(x)) == x`.
        Nr
   r   r
   r
   r   Údecode   r   z_Encoder.decodeN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   Úbytesr   r   r
   r
   r
   r   r      s    r   )Ú	metaclassc                   @   ó8   e Zd Zededefdd„ƒZededefdd„ƒZdS )Ú
RawEncoderr   r   c                 C   ó   | S ©Nr
   r   r
   r
   r   r   ,   ó   zRawEncoder.encodec                 C   r   r   r
   r   r
   r
   r   r   0   r   zRawEncoder.decodeN©r   r   r   r   r   r   r   r
   r
   r
   r   r   +   ó
    r   c                   @   r   )Ú
HexEncoderr   r   c                 C   ó
   t  | ¡S r   )ÚbinasciiÚhexlifyr   r
   r
   r   r   6   ó   
zHexEncoder.encodec                 C   r   r   )r   Ú	unhexlifyr   r
   r
   r   r   :   r!   zHexEncoder.decodeNr   r
   r
   r
   r   r   5   r   r   c                   @   r   )ÚBase16Encoderr   r   c                 C   r   r   )Úbase64Ú	b16encoder   r
   r
   r   r   @   r!   zBase16Encoder.encodec                 C   r   r   )r$   Ú	b16decoder   r
   r
   r   r   D   r!   zBase16Encoder.decodeNr   r
   r
   r
   r   r#   ?   r   r#   c                   @   r   )ÚBase32Encoderr   r   c                 C   r   r   )r$   Ú	b32encoder   r
   r
   r   r   J   r!   zBase32Encoder.encodec                 C   r   r   )r$   Ú	b32decoder   r
   r
   r   r   N   r!   zBase32Encoder.decodeNr   r
   r
   r
   r   r'   I   r   r'   c                   @   r   )ÚBase64Encoderr   r   c                 C   r   r   )r$   Ú	b64encoder   r
   r
   r   r   T   r!   zBase64Encoder.encodec                 C   r   r   )r$   Ú	b64decoder   r
   r
   r   r   X   r!   zBase64Encoder.decodeNr   r
   r
   r
   r   r*   S   r   r*   c                   @   r   )ÚURLSafeBase64Encoderr   r   c                 C   r   r   )r$   Úurlsafe_b64encoder   r
   r
   r   r   ^   r!   zURLSafeBase64Encoder.encodec                 C   r   r   )r$   Úurlsafe_b64decoder   r
   r
   r   r   b   r!   zURLSafeBase64Encoder.decodeNr   r
   r
   r
   r   r-   ]   r   r-   c                   @   s&   e Zd Zefdededefdd„ZdS )Ú	EncodableÚselfÚencoderr   c                 C   s   |  t| ƒ¡S r   )r   r   )r1   r2   r
   r
   r   r   h   s   zEncodable.encodeN)r   r   r   r   r   ÚEncoderr   r   r
   r
   r
   r   r0   g   s    r0   )r$   r   Úabcr   r   Útypingr   r   r   r3   r   r   r#   r'   r*   r-   r0   r
   r
   r
   r   Ú<module>   s   





