
    "f                     V    d Z ddlmZmZmZmZ ddlmZ ddlm	Z	  G d de	          Z
dS )	:Bytes transform for values that may be optionally present.    )AnyListOptionalTuple   )Record)	Transformc                        e Zd ZdZddedee         ddf fdZedefd            Z		 dddd	e
e         d
ee         ddfdZ	 ddeded
ee         dedef         fdZ xZS )	OptionalXr   Nfmtnamereturnc                     |d|j          d}t                                          |d|j         d           || _        d S )Nz	Optional[])hint)r   super__init____hint___fmt)selfr   r   	__class__s      Q/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/plum/optional.pyr   zOptionalX.__init__   sP    <*sx***D$?$?$?$?@@@			    c                     | j         S )zOptional format.)r   )r   s    r   r   zOptionalX.fmt   s     yr   valuepiecesdumpc                 v    ||t          |          |_        d S d S | j                            |||           d S N)reprr   r   __pack__)r   r   r   r   s       r   r"   zOptionalX.__pack__   sJ     =!%[[


   Iufd33333r   bufferoffsetc                 t    ||d          r | j                             |||          \  }}nd }|d|_        ||fS )NNone)r   
__unpack__r   )r   r#   r$   r   items        r   r'   zOptionalX.__unpack__'   sQ     &''? 	$9//EELD&& D#
V|r   r    )__name__
__module____qualname____doc__r   r   strr   propertyr   r   bytesr	   r"   intr   r'   __classcell__)r   s   @r   r   r      s       DD C x}        S    X
 JN4 44#';46>v6F4	4 4 4 4 DH %(080@	tSy	       r   r   N)r,   typingr   r   r   r   r   r	   	transformr
   r    r   r   <module>r5      s    A @ - - - - - - - - - - - -                  ' ' ' ' '	 ' ' ' ' 'r   