|  | //! This module reexports the primitive types to allow usage that is not | 
|  | //! possibly shadowed by other declared types. | 
|  | //! | 
|  | //! This is normally only useful in macro generated code. | 
|  | //! | 
|  | //! An example of this is when generating a new struct and an impl for it: | 
|  | //! | 
|  | //! ```rust,compile_fail | 
|  | //! pub struct bool; | 
|  | //! | 
|  | //! impl QueryId for bool { | 
|  | //!     const SOME_PROPERTY: bool = true; | 
|  | //! } | 
|  | //! | 
|  | //! # trait QueryId { const SOME_PROPERTY: ::core::primitive::bool; } | 
|  | //! ``` | 
|  | //! | 
|  | //! Note that the `SOME_PROPERTY` associated constant would not compile, as its | 
|  | //! type `bool` refers to the struct, rather than to the primitive bool type. | 
|  | //! | 
|  | //! A correct implementation could look like: | 
|  | //! | 
|  | //! ```rust | 
|  | //! # #[allow(non_camel_case_types)] | 
|  | //! pub struct bool; | 
|  | //! | 
|  | //! impl QueryId for bool { | 
|  | //!     const SOME_PROPERTY: ::core::primitive::bool = true; | 
|  | //! } | 
|  | //! | 
|  | //! # trait QueryId { const SOME_PROPERTY: ::core::primitive::bool; } | 
|  | //! ``` | 
|  | //! | 
|  | //! We also used `::core` instead of `core`, because `core` can be | 
|  | //! shadowed, too. Paths, starting with `::`, are searched in | 
|  | //! the [extern prelude] since Edition 2018. | 
|  | //! | 
|  | //! [extern prelude]: https://doc.rust-lang.org/nightly/reference/names/preludes.html#extern-prelude | 
|  |  | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use bool; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use char; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use f32; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use f64; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use i8; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use i16; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use i32; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use i64; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use i128; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use isize; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use str; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use u8; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use u16; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use u32; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use u64; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use u128; | 
|  | #[stable(feature = "core_primitive", since = "1.43.0")] | 
|  | pub use usize; |