o
    4Hd                     @  s  d Z ddlmZ ddlZddlmZmZmZ ed Z	ed Z
edi dee d	ee d
eje de	dedededededeje deje dedededeje deje deejeejeef f eeeeedddZ	 G dd deddZG dd deZed eeeeeeeeeeje d!
ddZ	 G d"d# d#eddZejeef Z	 ed$eeeeeeeee	eje
 eje d%ddZG d&d' d'eddZG d(d) d)eddZG d*d+ d+eddZG d,d- d-eddZG d.d/ d/eddZG d0d1 d1eZG d2d3 d3eZed4eejeef ejeef ejeef ejeef eeje eje eje eje ejeeje f ejeef ed5ddZ	 G d6d7 d7eZdS )8z*Type definitions for cargo manifest files.    )annotationsN)Literal	TypedDictRequired)Z2015Z2018Z2021)binlibdylibZ	staticlibZcdylibZrlib
proc-macroPackagenameversionauthorseditionzrust-versiondescriptionreadmelicensezlicense-filekeywords
categories	workspacebuildlinksincludeexcludepublish)metadatazdefault-runautobinsautoexamples	autotestsautobenchesF)totalc                   @  s   e Zd ZU dZded< ded< ded< ded< d	ed
< d	ed< d	ed< d	ed< d	ed< ded< ded< d	ed< d	ed< d	ed< ded< ded< ded< ded< d	ed< ded< ded< ded< ded< dS ) FixedPackagez2A description of the Package Dictionary, fixed up.Required[str]r   r   T.List[str]r   EDITIONr   strZrust_versionr   r   r   license_filer   r   r   r   r   r   r   boolr   zT.Dict[str, T.Dict[str, str]]r   Zdefault_runr   r   r   r   N__name__
__module____qualname____doc____annotations__ r-   r-   >/usr/lib/python3.10/site-packages/mesonbuild/cargo/manifest.pyr    -   s2   
 r    c                   @     e Zd ZU dZded< dS )BadgezAn entry in the badge section.zcLiteral['actively-developed', 'passively-developed', 'as-is', 'experimental', 'deprecated', 'none']statusNr'   r-   r-   r-   r.   r0   J      
 r0   
Dependency)
r   registrygitbranchrevpathoptionalpackagezdefault-featuresfeaturesc                   @  sb   e Zd ZU dZded< ded< ded< ded< ded< ded	< d
ed< ded< d
ed< ded< dS )FixedDependencyz1An entry in the *dependencies sections, fixed up.r"   r   r$   r4   r5   r6   r7   r8   r&   r9   r:   Zdefault_featuresr;   Nr'   r-   r-   r-   r.   r<   d   s   
 r<   _BaseBuildTarget)r8   testdoctestbenchdocpluginr	   harnessr   z
crate-typezrequired-featuresc                   @     e Zd ZU ded< dS )BuildTargetr!   r   Nr(   r)   r*   r,   r-   r-   r-   r.   rE         
 rE   c                   @  rD   )	LibTargetr$   r   NrF   r-   r-   r-   r.   rH      rG   rH   c                   @  s^   e Zd ZU ded< ded< ded< ded< ded< ded< ded	< d
ed< ded< ded< dS )_BaseFixedBuildTargetr$   r8   r&   r>   r?   r@   rA   rB   rC   r#   r   zT.List[CRATE_TYPE]Z
crate_typer"   Zrequired_featuresNrF   r-   r-   r-   r.   rI      s   
 rI   c                   @  rD   )FixedBuildTargetr$   r   NrF   r-   r-   r-   r.   rJ      rG   rJ   c                   @  s   e Zd ZU ded< ded< dS )FixedLibTargetr!   r   r&   Z
proc_macroNrF   r-   r-   r-   r.   rK      s   
 rK   c                   @  r/   )Targetz"Target entry in the Manifest File.zT.Dict[str, DependencyV]dependenciesNr'   r-   r-   r-   r.   rL      r2   rL   c                   @  s"   e Zd ZU dZded< ded< dS )	WorkspaceaF  The representation of a workspace.

    In a vritual manifest the :attribute:`members` is always present, but in a
    project manifest, an empty workspace may be provided, in which case the
    workspace is implicitly filled in by values from the path based dependencies.

    the :attribute:`exclude` is always optional
    r"   membersr   Nr'   r-   r-   r-   r.   rN      s   
 	rN   Manifest)r:   ZbadgesrM   zdev-dependencieszbuild-dependenciesr   r   r>   r@   exampler;   targetr   c                   @  r/   )VirtualManifestzThe Representation of a virtual manifest.

    Cargo allows a root manifest that contains only a workspace, this is called
    a virtual manifest. This doesn't really map 1:1 with any meson concept,
    except perhaps the proposed "meta project".
    rN   r   Nr'   r-   r-   r-   r.   rS      s   
 rS   ) r+   
__future__r   typingTtyping_extensionsr   r   r   r#   Z
CRATE_TYPEr$   Listr&   Dictr
   r    r0   r3   r<   UnionZDependencyVr=   rE   rH   rI   rJ   rK   rL   rN   rP   rS   r-   r-   r-   r.   <module>   s   
	




