This feature is intended to provide expensive but thorough help for developers who have an unexpected `TypeId` value and need to determine what type it actually is. It causes `impl Debug for TypeId` to print the type name in addition to the opaque ID hash, and in order to do so, adds a name field to `TypeId`. The cost of this is the increased size of `TypeId` and the need to store type names in the binary; therefore, it is an optional feature. It may be enabled via `cargo -Zbuild-std -Zbuild-std-features=debug_typeid`. (Note that `-Zbuild-std-features` disables default features which you may wish to reenable in addition; see <https://doc.rust-lang.org/cargo/reference/unstable.html#build-std-features>.) Example usage and output: ``` fn main() { use std::any::{Any, TypeId}; dbg!(TypeId::of::<usize>(), drop::<usize>.type_id()); } ``` ``` TypeId::of::<usize>() = TypeId(0x763d199bccd319899208909ed1a860c6 = usize) drop::<usize>.type_id() = TypeId(0xe6a34bd13f8c92dd47806da07b8cca9a = core::mem::drop<usize>) ``` Also added feature declarations for the existing `debug_refcell` feature so it is usable from the `rust.std-features` option of `config.toml`.
33 lines
1.3 KiB
TOML
33 lines
1.3 KiB
TOML
[package]
|
|
name = "sysroot"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
|
|
# this is a dummy crate to ensure that all required crates appear in the sysroot
|
|
[dependencies]
|
|
proc_macro = { path = "../proc_macro" }
|
|
profiler_builtins = { path = "../profiler_builtins", optional = true }
|
|
std = { path = "../std" }
|
|
test = { path = "../test" }
|
|
|
|
# Forward features to the `std` crate as necessary
|
|
[features]
|
|
default = ["std_detect_file_io", "std_detect_dlsym_getauxval", "panic-unwind"]
|
|
backtrace = ["std/backtrace"]
|
|
compiler-builtins-c = ["std/compiler-builtins-c"]
|
|
compiler-builtins-mem = ["std/compiler-builtins-mem"]
|
|
compiler-builtins-no-asm = ["std/compiler-builtins-no-asm"]
|
|
compiler-builtins-no-f16-f128 = ["std/compiler-builtins-no-f16-f128"]
|
|
compiler-builtins-mangled-names = ["std/compiler-builtins-mangled-names"]
|
|
debug_refcell = ["std/debug_refcell"]
|
|
debug_typeid = ["std/debug_typeid"]
|
|
llvm-libunwind = ["std/llvm-libunwind"]
|
|
system-llvm-libunwind = ["std/system-llvm-libunwind"]
|
|
optimize_for_size = ["std/optimize_for_size"]
|
|
panic-unwind = ["std/panic_unwind"]
|
|
panic_immediate_abort = ["std/panic_immediate_abort"]
|
|
profiler = ["dep:profiler_builtins"]
|
|
std_detect_file_io = ["std/std_detect_file_io"]
|
|
std_detect_dlsym_getauxval = ["std/std_detect_dlsym_getauxval"]
|
|
std_detect_env_override = ["std/std_detect_env_override"]
|
|
windows_raw_dylib = ["std/windows_raw_dylib"]
|