     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67

    //! 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; }
    //! ```

    #[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 i128;
    #[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 i8;
    #[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 u128;
    #[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 u8;
    #[stable(feature = "core_primitive", since = "1.43.0")]
    pub use usize;