o
    Â¿is  ã                   @  s*   d dl mZ d dlmZ G dd„ dƒZdS )é    )Úannotations)ÚSetc                   @  s<   e Zd ZU ded< ded< ddd„Zdd	d
„Zddd„ZdS )ÚIdAlloczSet[int]Ú	_used_idsÚ	_free_idsÚreturnÚNonec                 C  s   t ƒ | _t ƒ | _d S ©N)Úsetr   r   )Úself© r   úP/home/ubuntu/.local/lib/python3.10/site-packages/libsql_client/hrana/id_alloc.pyÚ__init__   s   zIdAlloc.__init__Úintc                 C  sl   t | jƒdkr)| j ¡ }| j |¡ t | jƒd | jvr'| j t | jƒd ¡ |S t | jƒ}| j |¡ |S )Nr   é   )Úlenr   Úpopr   Úadd)r   Úfree_idr   r   r   Úalloc   s   

zIdAlloc.allocÚused_idc                 C  s@   | j  |¡ | j t| j ƒ¡ |t| j ƒk r| j |¡ d S d S r	   )r   Úremover   Údiscardr   r   )r   r   r   r   r   Úfree*   s
   ÿzIdAlloc.freeN)r   r   )r   r   )r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r   r   r   r   r   r   r      s   
 

r   N)Ú
__future__r   Útypingr   r   r   r   r   r   Ú<module>   s    