# Providers * [CrateInfo](#CrateInfo) * [DepInfo](#DepInfo) * [StdLibInfo](#StdLibInfo) ## CrateInfo
CrateInfo(aliases, compile_data, compile_data_targets, data, deps, edition, is_test, metadata, name,
          output, owner, proc_macro_deps, root, rustc_env, rustc_env_files, rustc_output,
          rustc_rmeta_output, srcs, std_dylib, type, wrapped_crate_type)
A provider containing general Crate information. **FIELDS** | Name | Description | | :------------- | :------------- | | aliases | Dict[Label, String]: Renamed and aliased crates | | compile_data | depset[File]: Compile data required by this crate. | | compile_data_targets | depset[Label]: Compile data targets required by this crate. | | data | depset[File]: Compile data required by crates that use the current crate as a proc-macro. | | deps | depset[DepVariantInfo]: This crate's (rust or cc) dependencies' providers. | | edition | str: The edition of this crate. | | is_test | bool: If the crate is being compiled in a test context | | metadata | File: The output from rustc from producing the output file. It is optional. | | name | str: The name of this crate. | | output | File: The output File that will be produced, depends on crate type. | | owner | Label: The label of the target that produced this CrateInfo | | proc_macro_deps | depset[DepVariantInfo]: This crate's rust proc_macro dependencies' providers. | | root | File: The source File entrypoint to this crate, eg. lib.rs | | rustc_env | Dict[String, String]: Additional `"key": "value"` environment variables to set for rustc. | | rustc_env_files | [File]: Files containing additional environment variables to set for rustc. | | rustc_output | File: The output from rustc from producing the output file. It is optional. | | rustc_rmeta_output | File: The rmeta file produced for this crate. It is optional. | | srcs | depset[File]: All source Files that are part of the crate. | | std_dylib | File: libstd.so file | | type | str: The type of this crate (see [rustc --crate-type](https://doc.rust-lang.org/rustc/command-line-arguments.html#--crate-type-a-list-of-types-of-crates-for-the-compiler-to-emit)). | | wrapped_crate_type | str, optional: The original crate type for targets generated using a previously defined crate (typically tests using the `rust_test::crate` attribute) | ## DepInfo
DepInfo(dep_env, direct_crates, link_search_path_files, transitive_build_infos,
        transitive_crate_outputs, transitive_crates, transitive_data, transitive_metadata_outputs,
        transitive_noncrates, transitive_proc_macro_data)
A provider containing information about a Crate's dependencies. **FIELDS** | Name | Description | | :------------- | :------------- | | dep_env | File: File with environment variables direct dependencies build scripts rely upon. | | direct_crates | depset[AliasableDepInfo] | | link_search_path_files | depset[File]: All transitive files containing search paths to pass to the linker | | transitive_build_infos | depset[BuildInfo] | | transitive_crate_outputs | depset[File]: All transitive crate outputs. | | transitive_crates | depset[CrateInfo] | | transitive_data | depset[File]: Data of all transitive non-macro dependencies. | | transitive_metadata_outputs | depset[File]: All transitive metadata dependencies (.rmeta, for crates that provide them) and all transitive object dependencies (.rlib) for crates that don't provide metadata. | | transitive_noncrates | depset[LinkerInput]: All transitive dependencies that aren't crates. | | transitive_proc_macro_data | depset[File]: Data of all transitive proc-macro dependencies, and non-macro dependencies of those macros. | ## StdLibInfo
StdLibInfo(alloc_files, between_alloc_and_core_files, between_core_and_std_files, core_files,
           dot_a_files, memchr_files, panic_files, self_contained_files, srcs, std_dylib, std_files,
           std_rlibs, test_files)
A collection of files either found within the `rust-stdlib` artifact or generated based on existing files. **FIELDS** | Name | Description | | :------------- | :------------- | | alloc_files | List[File]: `.a` files related to the `alloc` module. | | between_alloc_and_core_files | List[File]: `.a` files related to the `compiler_builtins` module. | | between_core_and_std_files | List[File]: `.a` files related to all modules except `adler`, `alloc`, `compiler_builtins`, `core`, and `std`. | | core_files | List[File]: `.a` files related to the `core` and `adler` modules | | dot_a_files | Depset[File]: Generated `.a` files | | memchr_files | Depset[File]: `.a` files associated with the `memchr` module. | | panic_files | Depset[File]: `.a` files associated with `panic_unwind` and `panic_abort`. | | self_contained_files | List[File]: All `.o` files from the `self-contained` directory. | | srcs | List[Target]: All targets from the original `srcs` attribute. | | std_dylib | File: libstd.so file | | std_files | Depset[File]: `.a` files associated with the `std` module. | | std_rlibs | List[File]: All `.rlib` files | | test_files | Depset[File]: `.a` files associated with the `test` module. |