
    q&f                         d dl Z ddlmZ ddlmZ dZ e j                  dj                   e	e      ej                              Z G d d	      Zy)
    N   )docket   )v2s   dirstate-v2
z>{}s32s32s{}sLBc                   B    e Zd ZdZd Zed        Zed        Zd Zd Z	y)DirstateDockets   dirstate.%sc                 <    || _         || _        || _        || _        y N)parents	data_sizetree_metadatauuid)selfr   r   r   r   s        @/usr/lib/python3/dist-packages/mercurial/dirstateutils/docket.py__init__zDirstateDocket.__init__"   s    "*	    c                 <     | |||t        j                               S r
   )
docket_modmake_uid)clsr   r   r   s       r   with_new_uuidzDirstateDocket.with_new_uuid(   s    7I}j6I6I6KLLr   c                 J   |s#|j                   |j                   f} | |ddd       S t        j                  |      \  }}}}}}	|t        k7  rt	        d      |t        j
                  t        j
                  |	z    }
|d |j                   }|d |j                   } | ||f|||
      S )Nr   r   zexpected dirstate-v2 marker)nullidHEADERunpack_fromV2_FORMAT_MARKER
ValueErrorsizenodelen)r   datanodeconstantsr   markerp1p2metar   	uuid_sizer   s              r   parsezDirstateDocket.parse,   s    $++]-A-ABGw3--5;5G5G5M2Bi%%:;;FKK&++	"9:'-''('-''(B8Yd33r   c           
          | j                   \  }}t        j                  t        ||| j                  | j
                  t        | j                              }|| j                  z   S r
   )r   r   packr   r   r   lenr   )r   r#   r$   headers       r   	serializezDirstateDocket.serialize9   sR    BNN		N
 		!!r   c                 4    | j                   | j                  z  S r
   )data_filename_patternr   )r   s    r   data_filenamezDirstateDocket.data_filenameE   s    ))DII55r   N)
__name__
__module____qualname__r.   r   classmethodr   r'   r,   r/    r   r   r   r      sA    * M M 
4 
4
"6r   r   )structrevlogutilsr   r    r   r   Structformatr*   TREE_METADATA_SIZEr   r   r4   r   r   <module>r;      sN     . #  
S!12B4I4IJ

'6 '6r   