U
    ec                     @   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eedddZeeeedddZdS )_Encoderdatareturnc                 C   s   dS )z#Transform raw data to encoded data.N r   r
   r
   ,lib/python3.8/site-packages/nacl/encoding.pyencode   s    z_Encoder.encodec                 C   s   dS )zTransform 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   s    z_Encoder.decodeN)__name__
__module____qualname__staticmethodr   bytesr   r   r
   r
   r
   r   r      s   r   )	metaclassc                   @   s4   e Zd ZeeedddZeeedddZdS )
RawEncoderr   c                 C   s   | S Nr
   r   r
   r
   r   r   ,   s    zRawEncoder.encodec                 C   s   | S r   r
   r   r
   r
   r   r   0   s    zRawEncoder.decodeNr   r   r   r   r   r   r   r
   r
   r
   r   r   +   s   r   c                   @   s4   e Zd ZeeedddZeeedddZdS )
HexEncoderr   c                 C   s
   t | S r   )binasciiZhexlifyr   r
   r
   r   r   6   s    zHexEncoder.encodec                 C   s
   t | S r   )r   Z	unhexlifyr   r
   r
   r   r   :   s    zHexEncoder.decodeNr   r
   r
   r
   r   r   5   s   r   c                   @   s4   e Zd ZeeedddZeeedddZdS )Base16Encoderr   c                 C   s
   t | S r   )base64Z	b16encoder   r
   r
   r   r   @   s    zBase16Encoder.encodec                 C   s
   t | S r   )r   Z	b16decoder   r
   r
   r   r   D   s    zBase16Encoder.decodeNr   r
   r
   r
   r   r   ?   s   r   c                   @   s4   e Zd ZeeedddZeeedddZdS )Base32Encoderr   c                 C   s
   t | S r   )r   Z	b32encoder   r
   r
   r   r   J   s    zBase32Encoder.encodec                 C   s
   t | S r   )r   Z	b32decoder   r
   r
   r   r   N   s    zBase32Encoder.decodeNr   r
   r
   r
   r   r   I   s   r   c                   @   s4   e Zd ZeeedddZeeedddZdS )Base64Encoderr   c                 C   s
   t | S r   )r   Z	b64encoder   r
   r
   r   r   T   s    zBase64Encoder.encodec                 C   s
   t | S r   )r   Z	b64decoder   r
   r
   r   r   X   s    zBase64Encoder.decodeNr   r
   r
   r
   r   r   S   s   r   c                   @   s4   e Zd ZeeedddZeeedddZdS )URLSafeBase64Encoderr   c                 C   s
   t | S r   )r   Zurlsafe_b64encoder   r
   r
   r   r   ^   s    zURLSafeBase64Encoder.encodec                 C   s
   t | S r   )r   Zurlsafe_b64decoder   r
   r
   r   r   b   s    zURLSafeBase64Encoder.decodeNr   r
   r
   r
   r   r   ]   s   r   c                   @   s"   e Zd ZefeeedddZdS )	Encodable)selfencoderr	   c                 C   s   | t| S r   )r   r   )r    r!   r
   r
   r   r   h   s    zEncodable.encodeN)r   r   r   r   r   Encoderr   r   r
   r
   r
   r   r   g   s   r   )r   r   abcr   r   typingr   r   r   r"   r   r   r   r   r   r   r   r
   r
   r
   r   <module>   s   





