error_macros.rs.html -- source
Description: Source to the Rust file `libstd/../stdsimd/stdsimd/arch/detect/error_macros.rs`.
Keywords: rust, rustlang, rust-lang

      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
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136

    //! The `is_{target_arch}_feature_detected!` macro are only available on their
    //! architecture. These macros provide a better error messages when the user
    //! attempts to call them in a different architecture.

    #[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_x86_feature_detected {
        ($t: tt) => {
            compile_error!(
                r#"
            is_x86_feature_detected can only be used on x86 and x86_64 targets.
            You can prevent it from being used in other architectures by
            guarding it behind a cfg(target_arch) as follows:

                #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
                    if is_x86_feature_detected(...) { ... }
                }
            "#
            )
        };
    }

    #[cfg(not(target_arch = "arm"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_arm_feature_detected {
        ($t:tt) => {
            compile_error!(
                r#"
            is_arm_feature_detected can only be used on ARM targets.
            You can prevent it from being used in other architectures by
            guarding it behind a cfg(target_arch) as follows:

                #[cfg(target_arch = "arm")] {
                    if is_arm_feature_detected(...) { ... }
                }
            "#
            )
        };
    }

    #[cfg(not(target_arch = "aarch64"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_aarch64_feature_detected {
        ($t: tt) => {
            compile_error!(
                r#"
            is_aarch64_feature_detected can only be used on AArch64 targets.
            You can prevent it from being used in other architectures by
            guarding it behind a cfg(target_arch) as follows:

                #[cfg(target_arch = "aarch64")] {
                    if is_aarch64_feature_detected(...) { ... }
                }
            "#
            )
        };
    }

    #[cfg(not(target_arch = "powerpc"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_powerpc_feature_detected {
        ($t:tt) => {
            compile_error!(
                r#"
    is_powerpc_feature_detected can only be used on PowerPC targets.
    You can prevent it from being used in other architectures by
    guarding it behind a cfg(target_arch) as follows:

        #[cfg(target_arch = "powerpc")] {
            if is_powerpc_feature_detected(...) { ... }
        }
    "#
            )
        };
    }

    #[cfg(not(target_arch = "powerpc64"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_powerpc64_feature_detected {
        ($t:tt) => {
            compile_error!(
                r#"
    is_powerpc64_feature_detected can only be used on PowerPC64 targets.
    You can prevent it from being used in other architectures by
    guarding it behind a cfg(target_arch) as follows:

        #[cfg(target_arch = "powerpc64")] {
            if is_powerpc64_feature_detected(...) { ... }
        }
    "#
            )
        };
    }

    #[cfg(not(target_arch = "mips"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_mips_feature_detected {
        ($t:tt) => {
            compile_error!(
                r#"
            is_mips_feature_detected can only be used on MIPS targets.
            You can prevent it from being used in other architectures by
            guarding it behind a cfg(target_arch) as follows:

                #[cfg(target_arch = "mips")] {
                    if is_mips_feature_detected(...) { ... }
                }
            "#
            )
        };
    }

    #[cfg(not(target_arch = "mips64"))]
    #[macro_export]
    #[unstable(feature = "stdsimd", issue = "27731")]
    macro_rules! is_mips64_feature_detected {
        ($t:tt) => {
            compile_error!(
                r#"
            is_mips64_feature_detected can only be used on MIPS64 targets.
            You can prevent it from being used in other architectures by
            guarding it behind a cfg(target_arch) as follows:

                #[cfg(target_arch = "mips64")] {
                    if is_mips64_feature_detected(...) { ... }
                }
            "#
            )
        };
    }

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)