§
    –t¯bb	  ã                   ó´   — d Z ddgZddlZddlmZ  ej        d¦  «        Z G d„ de¦  «        Z G d	„ d
eeej        ¦  «        Z	 G d„ dee         ¦  «        Z
dS )zcMeson specific typing helpers.

Holds typing helper classes, such as the ImmutableProtocol classes
ÚProtocolÚImmutableListProtocolé    N)r   ÚTc                   ó   — e Zd Zdefd„ZdS )ÚStringProtocolÚreturnc                 ó   — d S ©N© ©Úselfs    ú4/usr/lib/python3/dist-packages/mesonbuild/_typing.pyÚ__str__zStringProtocol.__str__%   ó   € € € ó    N)Ú__name__Ú
__module__Ú__qualname__Ústrr   r   r   r   r   r   $   s!   € € € € € Ø!˜Ð!Ð!Ð!Ð!Ð!Ð!r   r   c                   ó   — e Zd ZdS )ÚSizedStringProtocolN)r   r   r   r   r   r   r   r   '   s   € € € € € Ø€Dr   r   c                   óö  — e Zd ZdZdej        e         fd„Zej        de	defd„¦   «         Z
ej        dedej        e         fd„¦   «         Z
dedefd„Zdej        e         fd	„Zde	fd
„Zdej        e         dej        e         fd„Zdej        defd„Zdej        defd„Zdej        defd„Zdej        defd„Zdej        defd„Zdej        defd„Zdede	fd„Zdede	fd„Zdej        e         fd„ZdS )r   ar  A protocol used in cases where a list is returned, but should not be
    mutated.

    This provides all of the methods of a Sequence, as well as copy(). copy()
    returns a list, which allows mutation as it's a copy and that's (hopefully)
    safe.

    One particular case this is important is for cached values, since python is
    a pass-by-reference language.
    r   c                 ó   — d S r
   r   r   s    r   Ú__iter__zImmutableListProtocol.__iter__7   r   r   Úindexc                 ó   — d S r
   r   ©r   r   s     r   Ú__getitem__z!ImmutableListProtocol.__getitem__9   s   € Ø,/¨Cr   c                 ó   — d S r
   r   r   s     r   r   z!ImmutableListProtocol.__getitem__;   s   € Ø;>¸3r   Úitemc                 ó   — d S r
   r   ©r   r    s     r   Ú__contains__z"ImmutableListProtocol.__contains__>   r   r   c                 ó   — d S r
   r   r   s    r   Ú__reversed__z"ImmutableListProtocol.__reversed__@   r   r   c                 ó   — d S r
   r   r   s    r   Ú__len__zImmutableListProtocol.__len__B   r   r   Úotherc                 ó   — d S r
   r   ©r   r(   s     r   Ú__add__zImmutableListProtocol.__add__D   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__eq__zImmutableListProtocol.__eq__F   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__ne__zImmutableListProtocol.__ne__G   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__le__zImmutableListProtocol.__le__H   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__lt__zImmutableListProtocol.__lt__I   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__gt__zImmutableListProtocol.__gt__J   r   r   c                 ó   — d S r
   r   r*   s     r   Ú__ge__zImmutableListProtocol.__ge__K   r   r   c                 ó   — d S r
   r   r"   s     r   ÚcountzImmutableListProtocol.countM   r   r   c                 ó   — d S r
   r   r"   s     r   r   zImmutableListProtocol.indexO   r   r   c                 ó   — d S r
   r   r   s    r   ÚcopyzImmutableListProtocol.copyQ   r   r   N)r   r   r   Ú__doc__ÚtypingÚIteratorr   r   ÚoverloadÚintr   ÚsliceÚListÚboolr#   r%   r'   r+   ÚAnyr-   r/   r1   r3   r5   r7   r9   r   r<   r   r   r   r   r   *   s²  € € € € € ð	ð 	ð 2˜&œ/¨!Ô,Ð1Ð1Ð1Ð1à„_Ø/ Ð/¨Ð/Ð/Ð/ñ „_Ø/Ø„_Ø> Ð>¨6¬;°q¬>Ð>Ð>Ð>ñ „_Ø>à0 Ð0 tÐ0Ð0Ð0Ð0à5˜fœo¨aÔ0Ð5Ð5Ð5Ð5à!˜Ð!Ð!Ð!Ð!àC˜Vœ[¨œ^ÐC°´¸A´ÐCÐCÐCÐCà4˜FœJÐ4¨4Ð4Ð4Ð4Ð4Ø4˜FœJÐ4¨4Ð4Ð4Ð4Ð4Ø4˜FœJÐ4¨4Ð4Ð4Ð4Ð4Ø4˜FœJÐ4¨4Ð4Ð4Ð4Ð4Ø4˜FœJÐ4¨4Ð4Ð4Ð4Ð4Ø4˜FœJÐ4¨4Ð4Ð4Ð4Ð4à(˜!Ð( Ð(Ð(Ð(Ð(à(˜!Ð( Ð(Ð(Ð(Ð(à)�f”k !”nÐ)Ð)Ð)Ð)Ð)Ð)r   )r=   Ú__all__r>   Útyping_extensionsr   ÚTypeVarr   r   ÚSizedr   r   r   r   r   ú<module>rJ      sâ   ðð"ð ð Øð€ð
 €€€ð 'Ð &Ð &Ð &Ð &Ð &ð €F„N�3ÑÔ€ð"ð "ð "ð "ð "�Xñ "ô "ð "ð	ð 	ð 	ð 	ð 	˜( N°F´Lñ 	ô 	ð 	ð'*ð '*ð '*ð '*ð '*˜H QœKñ '*ô '*ð '*ð '*ð '*r   