
    <hK                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSK	J
r
Jr  SSKJr  \R                  (       a!  SS	KJrJr  SS
KJr  SSKJrJr   " S S\5      r\R*                  " SSS9r\R*                  " SSS9rSrS7S jr\R4                  S8S j5       r\R4                  S9S j5       rS:S jr      S;S jr\R4                          S<S j5       r\R4                          S=S j5       r        S>S jr\R<                   " S S5      5       r\R<                   " S S5      5       r \R<                   " S S 5      5       r!\R<                   " S! S"\RD                  \   5      5       r#\R<                   " S# S$\#S%   5      5       r$\R<                   " S& S'\#S(   5      5       r%\R<                   " S) S*\#S(   5      5       r&\R<                   " S+ S,\#S(   5      5       r'\R<                   " S- S.\#S(   5      5       r(\R<                   " S/ S05      5       r)\R<                   " S1 S25      5       r*\R<                   " S3 S45      5       r+\R<                   " S5 S65      5       r,g)?z*Type definitions for cargo manifest files.    )annotationsN   )version   )MesonExceptionlazy_property)mlog)ProtocolSelf)raw)EDITION
CRATE_TYPEc                       \ rS rSr% S\S'   Srg)DataclassInstance   z/T.ClassVar[dict[str, dataclasses.Field[T.Any]]]__dataclass_fields__ N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       z/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/cargo/manifest.pyr   r      s    MMr   r   _DI)bound_Rzraw._BaseBuildTargetaI  This may (unlikely) be an error in the cargo manifest, or may be a missing implementation in Meson. If this issue can be reproduced with the latest version of Meson, please help us by opening an issue at https://github.com/mesonbuild/meson/issues. Please include the crate and version that is generating this warning if possible.c                &    U R                  SS5      $ )zRFixup a meson variable name

:param name: The name to fix
:return: the fixed name
-_)replace)names    r   fixup_meson_varnamer$   &   s     <<S!!r   c                    g Nr   depvs    r   _depv_to_depr)   /   s    @Cr   c                    g r&   r   r'   s    r   r)   r)   2   s    ;>r   c                8    [        U [        5      (       a  SU 0$ U $ )Nr   )
isinstancestrr'   s    r   r)   r)   5   s     *4 5 5It?4?r   c                   0 n[        5       n[        R                  " U5       Vs1 s H  ofR                  iM     nnU R                  " 5        H;  u  p[        U5      n
X;  a  UR                  U5        M(  X;   a
  X:   " U	5      n	XU
'   M=     U(       aD  [        R                  " USSR                  SR                  [        U5      5      5      [        5        U" S0 UD6$ s  snf )a  Fixup raw cargo mappings to ones more suitable for python to consume as dataclass.

* Replaces any `-` with `_` in the keys.
* Optionally pass values through the functions in kwargs, in order to do
  recursive conversions.
* Remove and warn on keys that are coming from cargo, but are unknown to
  our representations.

This is intended to give users the possibility of things proceeding when a
new key is added to Cargo.toml that we don't yet handle, but to still warn
them that things might not work.

:param data: The raw data to look at
:param cls: The Dataclass derived type that will be created
:param msg: the header for the error message. Usually something like "In N structure".
:return: The original data structure, but with all unknown keys removed.
zhas unexpected keysz"{}".z, r   )setdataclassesfieldsr#   itemsr$   addr	   warningformatjoinsorted_EXTRA_KEYS_WARNING)r   clsmsgkwargsnew_dict
unexpectedxr1   orig_kvks              r   _raw_to_dataclassrB   9   s    & HJ)00565ff5F6YY[	'?NN6";	!A ! S/		&Q[J\@]1^(	*?? 7s   Cc                    g r&   r   r   raw_from_workspacer:   r;   s       r   _inherit_from_workspacerF   ^   s	     [^r   c                    g r&   r   rD   s       r   rF   rF   d   s	     ^ar   c                   [         R                  " SU 5      nU(       d@  UR                  " SS5      (       d  [        S U 5       5      (       a  [	        SU S35      eU$ UR
                  " 5        VVs0 s H  u  pVUS:w  d  M  XV_M     nnnUR
                  " 5        HZ  u  pV[        U[        5      (       d  M  UR                  SS5      (       d  M5  XQ;   a  X   Xu'   XS;   a  X5   " XgU   5      Xu'   MV  MX  Xu	 M\     UR                  " SS5      (       aI  UR                  5        H5  u  pVXW;  d  XS;   d  M  XS;   a  X5   " UR                  " U5      U5      nXgU'   M7     U$ s  snnf )NT.Mapping[str, object]	workspaceFc              3  t   #    U  H.  n[        U[        5      =(       a    UR                  S S5      v   M0     g7f)rJ   FN)r,   dictget).0r@   s     r   	<genexpr>*_inherit_from_workspace.<locals>.<genexpr>s   s*     Ss!Jq$'EAEE+u,EEss   68zCargo.toml file requests z from workspace)TcastrM   anyr   r2   r,   rL   )raw_rE   r:   r;   r   rA   r@   results           r   rF   rF   j   s=   
 &&)4
0C77;&&SsSSS #<SE!QRR
"yy{?{tqa;.>dad{F?		a155e#<#<&.1	; &	!AY 7FI  I  ww{E""&,,.DA!+;	#''!*a0Aq		 /
 M! @s   3EEc                  n   \ rS rSr% SrS\S'   S\S'   SrS\S'   SrS\S	'   \R                  " \
S
9rS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   \R                  " \
S
9rS\S'   \R                  " \
S
9rS\S'   SrS\S'   SrS\S'   SrS\S'   \R                  " \
S
9rS\S'   \R                  " \
S
9rS\S'   SrS\S '   \R                  " \S
9rS!\S"'   SrS\S#'   SrS\S$'   Sr S\S%'   Sr!S\S&'   Sr"S\S''   Sr#S\S('   \$S,S) j5       r%\&S-S.S* jj5       r'S+r(g)/Package   zARepresentation of a Cargo Package entry, with defaults filled in.r-   r#   r   NT.Optional[str]descriptionresolverdefault_factoryT.List[str]authors2015r   editionrust_versiondocumentationreadmehomepage
repositorylicenselicense_filekeywords
categoriesrJ   buildlinksexcludeincludeTboolpublishT.Dict[str, T.Any]metadatadefault_runautolibautobinsautoexamples	autotestsautobenchesc                B    [         R                  " U R                   5      $ r&   )r   apiselfs    r   rz   Package.api   s    {{4<<((r   c                l    S nUb  UR                   n[        XSUS    35      n[        XSUS    35      $ )NzPackage entry r#   )packagerF   rB   )r9   raw_pkgrJ   
raw_ws_pkgs       r   from_rawPackage.from_raw   sL    
 "**J)'PWX^P_O`?ab ?P/QRRr   r   returnr-   r&   )r   raw.PackagerJ   T.Optional[Workspace]r   r   ))r   r   r   r   __doc__r   rZ   r[   r0   fieldlistr_   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rJ   rk   rl   rm   rn   rp   rL   rr   rs   rt   ru   rv   rw   rx   r   rz   classmethodr   r   r   r   r   rW   rW      s    L
IL#'K' $Ho$&,,TBG[BGW$(L/(%)M?)"FO" $Ho$"&J&#G_#$(L/('--dCHkC)//EJE!%I%!E?!!E?!&,,TBG[B&,,TBG[BGT#.#4#4T#JH J#'K'GTHdL$ItK) ) S Sr   rW   c                      \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   S
rS\S'   \	R                  " \S9rS\S'   \SS j5       r\SS j5       rSS jrSrg
)SystemDependency   z[Representation of a Cargo system-deps entry
https://docs.rs/system-deps/latest/system_deps
r-   r#    r   Fro   optionalNrY   featurer\   zT.Dict[str, T.Dict[str, str]]feature_overridesc                D   [        U[        5      (       a  SU0nUR                  " SU5      nUR                  " SS5      nUR                  " SS5      nUR                  " S5      nUR                  " 5        VVs0 s H  u  pgUS;  d  M  Xg_M     nnnU " XXEU5      $ s  snnf )Nr   r#   r   r   Fr   >   r#   r   r   r   )r,   r-   rM   r2   )	r9   r#   r   r   r   r   rA   r@   r   s	            r   r   SystemDependency.from_raw   s    c3c"Cwwvt$'')R(77:u-'')$.1iikqkdaQFp=pTQTkq4(5FGG rs   9B	Bc                    U R                   (       a  U R                   R                  S5      O/ n/ nU H2  nUR                  5       nUS   S;  a  SU 3nUR                  U5        M4     U$ )N,r   z><=>=)r   splitstripappend)r|   versrU   r@   s       r   meson_versionSystemDependency.meson_version   sb    *.,,t||!!#&B A	At5 HMM!	 
 r   c                J    U R                   S L =(       d    U R                   U;   $ r&   )r   )r|   featuress     r   enabledSystemDependency.enabled   s    ||t#?t||x'??r   r   )r#   r-   r   z T.Union[T.Dict[str, T.Any], str]r   r   r   r^   )r   z
T.Set[str]r   ro   )r   r   r   r   r   r   r   r   r   r0   r   rL   r   r   r   r   r   r   r   r   r   r   r   r      sr     IGSHd#G_#7B7H7HY]7^4^	H 	H  @r   r   c                     \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   SrS\S
'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   \R                  " \S9rS\S'   \SS j5       r\SS j5       r\SSS jj5       r\SSS jj5       rSrg) 
Dependency   z+Representation of a Cargo Dependency Entry.r-   r   r   r   NrY   registrygitbranchrevpathFro   r   Tdefault_featuresr\   r^   r   c                B    [         R                  " U R                   5      $ r&   )r   convertr{   s    r   r   Dependency.meson_version   s    t||,,r   c                   [        5       nU R                   H  nUR                  S5      (       a8  UR                  [        R
                  " USS  R                  5       5      5        MQ  UR                  S5      (       d  Mi  UR                  [        R
                  " USS  R                  5       5      5        M     U(       d  g[        U5      S:X  a  UR                  5       $ [        SU R                   S35      e)N)r   z==r   =r   0z*Cannot determine minimum API version from .)
r/   r   
startswithr3   r   rz   r   lenpopr   )r|   rz   r@   s      r   rz   Dependency.api   s     e##A||L))AabEKKM23c""AabEKKM23	 $
 X]779 #Mdll^[\!]^^r   c                n   ^ [        X$SU 3U4S jS S9nUR                  SU5        [        X SU 35      $ )NzDependency entry c                D   > [         R                  R                  UT5      $ r&   )osr   relpath)pkg_pathws_pathmember_paths     r   <lambda>*Dependency.from_raw_dict.<locals>.<lambda>
  s    Y`bmInr   c                0    U =(       d    / U=(       d    / -   $ r&   r   )r   r   s     r   r   r     s    hnZ\ahanlnMor   )r   r   r   )rF   
setdefaultrB   )r9   r#   raw_depr   
raw_ws_deps      ` r   from_raw_dictDependency.from_raw_dict  sG    )',=dV*D/n3oq 	9d+ 1B4&/IJJr   c                    SnUb'  UR                   R                  U0 5      n[        U5      n[        U5      nU R                  XX55      $ )z9Create a dependency from a raw cargo dictionary or stringN)dependenciesrM   r)   r   )r9   r#   raw_depvr   rJ   r   raw_ws_depvr   s           r   r   Dependency.from_raw  sN     26
 #0044T2>K%k2Jx(  HHr   r   r   r   )r   N)
r#   r-   r   *T.Union[raw.FromWorkspace, raw.Dependency]r   r-   r   zT.Optional[raw.Dependency]r   r   )
r#   r-   r   +T.Union[raw.FromWorkspace, raw.DependencyV]r   r-   rJ   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r      s     6LGS $Ho$C"FO"C D/ Hd!d!'--dCHkC- - _ _ K K I Ir   r   c                      \ rS rSr% S\S'   S\S'   S\S'   SrS\S	'   S
rS\S'   SrS\S'   S
rS\S'   Sr	S\S'   Sr
S\S'   \R                  " \S9rS\S'   S
rS\S'   \SS j5       rSrg)BuildTargeti  r-   r#   r   T.List[CRATE_TYPE]
crate_typeTro   testFdoctestbenchdocharnessr`   r   ra   r\   r^   required_featurespluginc                F    UR                   " SS5      n[        XSU 35      $ )Nr#   z<anonymous>zBinary entry )rM   rB   )r9   r   r#   s      r   r   BuildTarget.from_raw7  s&    wwv}- ]4&+ABBr   r   N)r   r   r   r   )r   r   r   r   r   r   r   r   r   r   ra   r0   r   r   r   r   r   r   r   r   r   r   r   r     s     I
I"" D$ GT E4 CGTGW%0%6%6t%L{LFDC Cr   r   c                      \ rS rSr% SrSrS\S'   SrS\S'   \R                  R                  SS5      r	S	\S
'   SrS\S'   \R                  " S S9rS\S'   SrS\S'   \SS j5       rSrg)Libraryi<  z(Representation of a Cargo Library Entry.Tro   r   r   srczlib.rsr-   r   F
proc_macroc                     S/$ )Nlibr   r   r   r   r   Library.<lambda>E      PUwr   r\   r   r   doc_scrape_examplesc                L    UR                   " SU5        [        XSUS    35      $ )Nr#   zLibrary entry )r   rB   )r9   r   fallback_names      r   r   Library.from_rawH  s*     	v}- ^CK=+IJJr   r   N)r   raw.LibTargetr   r-   r   r   )r   r   r   r   r   r   r   r   r   r   r6   r   r0   r   r   r   r   r   r   r   r   r   r   r   <  ss     3GTCUH-D#-J%0%6%6%WJ"W $$K Kr   r   r   c                  v   ^  \ rS rSr% SrSrS\S'   \R                  " S S9r	S\S	'   \
SU 4S
 jj5       rSrU =r$ )BinaryiP  z$Representation of a Cargo Bin Entry.Tro   r   c                     S/$ Nbinr   r   r   r   r   Binary.<lambda>V  r   r   r\   r   r   c                   > SU;  a)  [         R                  R                  SUS   S-   5      US'   [        TU ]  U5      $ )Nr   r   r#   .rsr   r   r6   superr   r9   r   	__class__s     r   r   Binary.from_rawX  s<    '',,uc&kE.ABCKw$$r   r   r   raw.BuildTargetr   r   )r   r   r   r   r   r   r   r0   r   r   r   r   r   __classcell__r   s   @r   r   r   P  s:     /C%0%6%6%WJ"W% %r   r   r   c                  v   ^  \ rS rSr% SrSrS\S'   \R                  " S S9r	S\S	'   \
SU 4S
 jj5       rSrU =r$ )Testi_  z%Representation of a Cargo Test Entry.Tro   r   c                     S/$ r   r   r   r   r   r   Test.<lambda>e  r   r   r\   r   r   c                   > SU;  a)  [         R                  R                  SUS   S-   5      US'   [        TU ]  U5      $ )Nr   testsr#   r   r   r   s     r   r   Test.from_rawg  s<    '',,wFe0CDCKw$$r   r   r   )r   r   r   r   r   r   r   r0   r   r   r   r   r   r   r   s   @r   r   r   _  s:     0E4%0%6%6%WJ"W% %r   r   c                  v   ^  \ rS rSr% SrSrS\S'   \R                  " S S9r	S\S	'   \
SU 4S
 jj5       rSrU =r$ )	Benchmarkim  z*Representation of a Cargo Benchmark Entry.Tro   r   c                     S/$ r   r   r   r   r   r   Benchmark.<lambda>s  r   r   r\   r   r   c                   > SU;  a)  [         R                  R                  SUS   S-   5      US'   [        TU ]  U5      $ )Nr   benchesr#   r   r   r   s     r   r   Benchmark.from_rawu  s<    '',,y#f+2EFCKw$$r   r   r   )r   r   r   r   r   r   r   r0   r   r   r   r   r   r   r   s   @r   r   r   m  s:     5D$%0%6%6%WJ"W% %r   r   c                  h   ^  \ rS rSr% Sr\R                  " S S9rS\S'   \	S	U 4S jj5       r
SrU =r$ )
Examplei|  z(Representation of a Cargo Example Entry.c                     S/$ r   r   r   r   r   r   Example.<lambda>  r   r   r\   r   r   c                   > SU;  a)  [         R                  R                  SUS   S-   5      US'   [        TU ]  U5      $ )Nr   examplesr#   r   r   r   s     r   r   Example.from_raw  s<    '',,z3v;3FGCKw$$r   r   r   )r   r   r   r   r   r0   r   r   r   r   r   r   r   r   s   @r   r  r  |  s0     3%0%6%6%WJ"W% %r   r  c                     \ rS rSr% SrS\S'   \R                  " \S9r	S\S'   \R                  " \S9r
S\S'   \R                  " \S9rS\S	'   S
rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   SrS\S'   S S jr\S!S j5       r\S"S#S jj5       rSrg
)$Manifesti  a  Cargo Manifest definition.

Most of these values map up to the Cargo Manifest, but with default values
if not provided.

Cargo subprojects can contain what Meson wants to treat as multiple,
interdependent, subprojects.

:param path: the path within the cargo subproject.
rW   r   r\   zT.Dict[str, Dependency]r   dev_dependenciesbuild_dependenciesNzT.Optional[Library]r   zT.List[Binary]r   zT.List[Test]r   zT.List[Benchmark]r   zT.List[Example]examplezT.Dict[str, T.List[str]]r   z$T.Dict[str, T.Dict[str, Dependency]]targetr   r-   r   c                <    U R                   R                  S/ 5        g )Ndefault)r   r   r{   s    r   __post_init__Manifest.__post_init__  s      B/r   c           	         U R                   R                  R                  S0 5      R                  5        VVs0 s H  u  pU[        R                  X5      _M     snn$ s  snnf )Nzsystem-deps)r   rr   rM   r2   r   r   )r|   rA   r@   s      r   system_dependenciesManifest.system_dependencies  sQ    ?C||?T?T?X?XYfhj?k?q?q?st?stq#,,Q22?sttts   "Ac                  ^^^^ [         R                  TS   T5      mTR                  (       aM  ST;  aG  [        R                  R                  [        R                  R                  US5      5      (       a  0 TS'   [        TU STS   S    3U4S jUU4S jUU4S jUU4S	 jU4S
 jS S S S UU4S jS9nX%l        U$ )Nr   r   z
src/lib.rszCargo.toml package r#   c                   > T$ r&   r   )r>   pkgs    r   r   #Manifest.from_raw.<locals>.<lambda>  s    Cr   c                   > U R                  5        VVs0 s H  u  pU[        R                  XTT5      _M     snn$ s  snnf r&   r2   r   r   r>   rA   r@   r   rJ   s      r   r   r    s[    {|  |C  |C  |E  :F  |Eswst!Z=P=PQRWbdm=n:n  |E  :F  :F   $=c                   > U R                  5        VVs0 s H  u  pU[        R                  XTT5      _M     snn$ s  snnf r&   r  r   s      r   r   r    s_      @A  @G  @G  @I  >J  @Iw{wxaATATUV[fhqAr>r  @I  >J  >Jr!  c                   > U R                  5        VVs0 s H  u  pU[        R                  XTT5      _M     snn$ s  snnf r&   r  r   s      r   r   r    sb      BC  BI  BI  BK  @L  BKy}yz:CVCVWX]hjsCt@t  BK  @L  @Lr!  c                <   > [         R                  U TS   S   5      $ )Nr   r#   )r   r   )r>   r   s    r   r   r    s    0@0@C	NSYDZ0[r   c                X    U  Vs/ s H  n[         R                  U5      PM     sn$ s  snf r&   )r   r   r>   bs     r   r   r    s    Q0OQ1CQ0O0O   'c                X    U  Vs/ s H  n[         R                  U5      PM     sn$ s  snf r&   )r   r   r&  s     r   r   r    s    A1NAq$--2BA1N1Nr(  c                X    U  Vs/ s H  n[         R                  U5      PM     sn$ s  snf r&   )r   r   r&  s     r   r   r    s$    RS2TRSQ93E3Ea3HRS2T2Tr(  c                X    U  Vs/ s H  n[         R                  U5      PM     sn$ s  snf r&   )r  r   r&  s     r   r   r    s$    RS4TRSQW5E5Ea5HRS4T4Tr(  c                  > U R                  5        VVVVs0 s HP  u  pXR                  S0 5      R                  5        VVs0 s H  u  p4U[        R                  X4TT5      _M     snn_MR     snnnn$ s  snnf s  snnnnf )Nr   )r2   rM   r   r   )r>   rA   r@   k2v2r   rJ   s        r   r   r    s    @A	4K@I 56  D  D  ES  UW  X  ^  ^  `  8a  `tztvJ<O<OPRXcen<o8o  `  8a  5a@I4K  8a 4Ks   +A:
$A4&A:
4A:
)
r   r   r  r  r   r   r   r   r  r  )rW   r   rt   r   r   existsr6   rB   )r9   r   r   rJ   r   fixedr  s    ` `` @r   r   Manifest.from_raw  s     s9~y9;;5+rww||D,?@@CJ!#s.A#i.QWBXAY,Z*7 0F 4J 6L&[&O'N(T*T*KL 
r   r   )r   None)r   zT.Dict[str, SystemDependency])r   Nr   )
r   zraw.Manifestr   r-   rJ   r   r   r-   r   r   )r   r   r   r   r   r   r0   r   rL   r   r  r  r   r   r   r   r   r  r   r  r   r  r   r  r   r   r   r   r   r   r  r    s   	 ,7,=,=d,SL)S0;0A0ARV0W-W2=2C2CTX2Y/Y#C	#%++DACA$**4@D,@*00FEF*00FG_F)4):):4)PH&P3>3D3DUY3ZF0ZD#N0 u u  r   r  c                     \ rS rSr% Sr\R                  " S S9rS\S'   \R                  " \	S9r
S\S'   \R                  " \	S9rS\S	'   \R                  " \	S9rS\S
'   SrS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " \S9rS\S'   \R                  " SS9rS\S'   \SS j5       rSrg)	Workspacei  z Cargo Workspace definition.
    c                     g)N2r   r   r   r   r   Workspace.<lambda>  s    cr   r\   r-   r[   r^   membersrm   default_membersNzT.Optional[raw.Package]r   zT.Dict[str, raw.Dependency]r   rq   lintsrr   F)initzT.Optional[Manifest]root_packagec                (    US   n[        X S5      nU$ )NrJ   r4  rB   )r9   r   ws_rawr0  s       r   r   Workspace.from_raw  s    [!!&{;r   r   )r   zraw.VirtualManifestr   r4  )r   r   r   r   r   r0   r   r[   r   r   r8  rm   r9  r   rL   r   r:  rr   r<  r   r   r   r   r   r   r4  r4    s      %%kBHcB&,,TBG[B&,,TBG[B#.#4#4T#JO[J (,G$+0;0A0ARV0WL-W + 1 1$ GEG#.#4#4T#JH J *5):):)FL&F r   r4  c                      \ rS rSr% SrS\S'   S\S'   SrS\S'   SrS\S	'   \R                  " \
S
9rS\S'   \SS j5       rSrg)CargoLockPackagei  z9A description of a package in the Cargo.lock file format.r-   r#   r   NrY   sourcechecksumr\   r^   r   c                    [        XS5      $ )NzCargo.lock packager>  r9   r   s     r   r   CargoLockPackage.from_raw  s     +?@@r   r   )r   zraw.CargoLockPackager   rB  )r   r   r   r   r   r   rC  rD  r0   r   r   r   r   r   r   r   r   r   rB  rB    sO     D
IL"FO" $Ho$ + 1 1$ GL+GA Ar   rB  c                      \ rS rSr% SrSrS\S'   \R                  " \	S9r
S\S'   \R                  " \S9rS	\S
'   \SS j5       rSrg)	CargoLocki  z,A description of the Cargo.lock file format.r   intr   r\   zT.List[CargoLockPackage]r   zT.Dict[str, str]rr   c                    [        XSS S9$ )Nz
Cargo.lockc                X    U  Vs/ s H  n[         R                  U5      PM     sn$ s  snf r&   )rB  r   )r>   ps     r   r   $CargoLock.from_raw.<locals>.<lambda>  s&    Z[3\Z[UV4D4M4Ma4PZ[3\3\r(  )r   r>  rF  s     r   r   CargoLock.from_raw  s     <)\^ 	^r   r   N)r   zraw.CargoLockr   rI  )r   r   r   r   r   r   r   r0   r   r   r   rL   rr   r   r   r   r   r   r   rI  rI    sQ     7GS(3(9(9$(OG%O!,!2!24!HHH^ ^r   rI  )r#   r-   r   r-   )r(   raw.FromWorkspacer   rP  )r(   zraw.DependencyVr   raw.Dependency)r(   r   r   r   )
r   rI   r9   zT.Type[_DI]r:   r-   r;   zT.Callable[[T.Any], object]r   r   )
r   r   rE   "T.Optional[T.Mapping[str, object]]r:   r-   r;   "T.Callable[[T.Any, T.Any], object]r   r   )
r   r   rE   rR  r:   r-   r;   rS  r   rQ  )
rT   z7T.Union[raw.FromWorkspace, raw.Package, raw.Dependency]rE   rR  r:   r-   r;   rS  r   rI   )-r   
__future__r   r0   r   typingrQ   r   r   mesonlibr   r   r	   TYPE_CHECKINGtyping_extensionsr
   r   r   r   r   r   TypeVarr   r   r8   r$   overloadr)   rB   rF   	dataclassrW   r   r   Genericr   r   r   r   r   r  r  r4  rB  rI  r   r   r   <module>r]     sO   1 "  	   4 ??0(NH N ii01YYt12; "  C  C >  >@""*E"JM"J ^0R^!$^ 'I^ NY^ ^
 a0Ra!$a 'Ia N\a a
0R!$ 'I NdB ,S ,S ,S\ %@ %@ %@N 5I 5I 5Ip C!))B- C C@ Kk/* K K& %[*+ % % %;() % % %-. % % 
%k+, 
% 
% 7 7 7t   4 A A A ^ ^ ^r   