File: //lib64/python3.9/encodings/__pycache__/utf_16.cpython-39.pyc
a
    �DOgt  �                   @   sx   d Z ddlZddlZejZddd�ZG dd� dej�ZG dd	� d	ej�ZG d
d� dej	�Z	G dd
� d
ej
�Z
dd� ZdS )z� Python 'utf-16' Codec
Written by Marc-Andre Lemburg (mal@lemburg.com).
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
�    N�strictc                 C   s   t �| |d�S )NT)�codecs�
utf_16_decode)�input�errors� r   �(/usr/lib64/python3.9/encodings/utf_16.py�decode   s    r	   c                   @   s8   e Zd Zddd�Zddd�Zdd� Zd	d
� Zdd� Zd
S )�IncrementalEncoderr   c                 C   s   t j�| |� d | _d S �N)r   r
   �__init__�encoder��selfr   r   r   r   r      s    zIncrementalEncoder.__init__Fc                 C   sN   | j d u r<t�|| j�d }tjdkr0tj| _ ntj| _ |S | � || j�d S )Nr   �little)r
   r   �
utf_16_encoder   �sys�	byteorder�utf_16_le_encode�utf_16_be_encode)r   r   �final�resultr   r   r   �encode   s    
zIncrementalEncoder.encodec                 C   s   t j�| � d | _d S r   )r   r
   �resetr
   �r   r   r   r   r   !   s    zIncrementalEncoder.resetc                 C   s   | j d u rdS dS )N�   r   )r
   r   r   r   r   �getstate%   s    zIncrementalEncoder.getstatec                 C   s,   |rd | _ ntjdkr tj| _ ntj| _ d S �Nr   )r
   r   r   r   r   r   �r   �stater   r   r   �setstate,   s
    
zIncrementalEncoder.setstateN)r   )F)�__name__�
__module__�__qualname__r   r   r   r   r    r   r   r   r   r
      s
   
r
   c                   @   s6   e Zd Zd
dd�Zdd� Zdd� Zdd	� Zd
d� ZdS )�IncrementalDecoderr   c                 C   s   t j�| |� d | _d S r   )r   �BufferedIncrementalDecoderr   �decoderr   r   r   r   r   6   s    zIncrementalDecoder.__init__c                 C   sl   | j d u r\t�||d|�\}}}|dkr2tj| _ n"|dkrDtj| _ n|dkrTtd��||fS | � || j|�S )Nr   ����   r   �%UTF-16 stream does not start with BOM)r&