
                         :    d dl mZmZ ddlmZ dZ G d de      Zy)   )	ClipboardClipboardData    )deque)InMemoryClipboardc                   *    e Zd ZdZddZd Zd Zd Zy)r   z
    Default clipboard implementation.
    Just keep the data in memory.

    This implements a kill-ring, for Emacs mode.
    Nc                     |t        |t              sJ |dk\  sJ || _        t               | _        || j                  |       y y )Nr   )
isinstancer   max_sizer   _ringset_data)selfdatar   s      5lib/third_party/prompt_toolkit/clipboard/in_memory.py__init__zInMemoryClipboard.__init__   sI    |z$>>>1}} W
MM$     c                    t        |t              sJ | j                  j                  |       t	        | j                        | j
                  kD  r>| j                  j                          t	        | j                        | j
                  kD  r=y y N)r
   r   r   
appendleftlenr   pop)r   r   s     r   r   zInMemoryClipboard.set_data   s\    $...

d#$**o-JJNN $**o-r   c                 L    | j                   r| j                   d   S t               S )Nr   )r   r   r   s    r   get_datazInMemoryClipboard.get_data!   s    ::::a=  ?"r   c                     | j                   r4| j                   j                  | j                   j                                y y r   )r   appendpopleftr   s    r   rotatezInMemoryClipboard.rotate'   s-    ::JJdjj0023 r   )N<   )__name__
__module____qualname____doc__r   r   r   r    r   r   r   r   
   s     #4r   r   N)baser   r   collectionsr   __all__r   r$   r   r   <module>r(      s    * 
 4	  4r   