Macro std::compile_error 1.20.0[−][src]
macro_rules! compile_error { ($msg:expr) => { ... }; ($msg:expr,) => { ... }; }
Unconditionally causes compilation to fail with the given error message when encountered.
This macro should be used when a crate uses a conditional compilation strategy to provide better error messages for erroneous conditions.
Examples
Two such examples are macros and #[cfg]
environments.
Emit better compiler error if a macro is passed invalid values.
ⓘThis example deliberately fails to compile
macro_rules! give_me_foo_or_bar { (foo) => {}; (bar) => {}; ($x:ident) => { compile_error!("This macro only accepts `foo` or `bar`"); } } give_me_foo_or_bar!(neither); // ^ will fail at compile time with message "This macro only accepts `foo` or `bar`"Run
Emit compiler error if one of a number of features isn't available.
ⓘThis example deliberately fails to compile
#[cfg(not(any(feature = "foo", feature = "bar")))] compile_error!("Either feature \"foo\" or \"bar\" must be enabled for this crate.")Run