Add compiler guards for mutually-exclusive features.
This commit is contained in:
parent
b789c319e7
commit
4e3ab7fa6a
30
src/lib.rs
30
src/lib.rs
@ -41,7 +41,7 @@
|
|||||||
//! engine.register_fn("compute", compute_something);
|
//! engine.register_fn("compute", compute_something);
|
||||||
//!
|
//!
|
||||||
//! # #[cfg(not(feature = "no_std"))]
|
//! # #[cfg(not(feature = "no_std"))]
|
||||||
//! # #[cfg(not(target_arch = "wasm32"))]
|
//! # #[cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))]
|
||||||
//! assert_eq!(
|
//! assert_eq!(
|
||||||
//! // Evaluate the script, expects a 'bool' return
|
//! // Evaluate the script, expects a 'bool' return
|
||||||
//! engine.eval_file::<bool>("my_script.rhai".into())?,
|
//! engine.eval_file::<bool>("my_script.rhai".into())?,
|
||||||
@ -61,6 +61,8 @@
|
|||||||
#[cfg(feature = "no_std")]
|
#[cfg(feature = "no_std")]
|
||||||
extern crate alloc;
|
extern crate alloc;
|
||||||
|
|
||||||
|
// Internal modules
|
||||||
|
|
||||||
mod ast;
|
mod ast;
|
||||||
mod dynamic;
|
mod dynamic;
|
||||||
mod engine;
|
mod engine;
|
||||||
@ -207,3 +209,29 @@ type StaticVec<T> = smallvec::SmallVec<[T; 4]>;
|
|||||||
/// Exported under the `internals` feature only.
|
/// Exported under the `internals` feature only.
|
||||||
#[cfg(feature = "internals")]
|
#[cfg(feature = "internals")]
|
||||||
pub type StaticVec<T> = smallvec::SmallVec<[T; 4]>;
|
pub type StaticVec<T> = smallvec::SmallVec<[T; 4]>;
|
||||||
|
|
||||||
|
// Compiler guards against mutually-exclusive feature flags
|
||||||
|
|
||||||
|
#[cfg(feature = "no_float")]
|
||||||
|
#[cfg(feature = "f32_float")]
|
||||||
|
compile_error!("'f32_float' cannot be used with 'no_float'");
|
||||||
|
|
||||||
|
#[cfg(feature = "no_std")]
|
||||||
|
#[cfg(feature = "wasm-bindgen")]
|
||||||
|
compile_error!("'wasm-bindgen' cannot be used with 'no-std'");
|
||||||
|
|
||||||
|
#[cfg(feature = "no_std")]
|
||||||
|
#[cfg(feature = "stdweb")]
|
||||||
|
compile_error!("'stdweb' cannot be used with 'no-std'");
|
||||||
|
|
||||||
|
#[cfg(any(target_arch = "wasm32", target_arch = "wasm64"))]
|
||||||
|
#[cfg(feature = "no_std")]
|
||||||
|
compile_error!("'no_std' cannot be used for WASM target");
|
||||||
|
|
||||||
|
#[cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))]
|
||||||
|
#[cfg(feature = "wasm-bindgen")]
|
||||||
|
compile_error!("'wasm-bindgen' should not be used non-WASM target");
|
||||||
|
|
||||||
|
#[cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))]
|
||||||
|
#[cfg(feature = "stdweb")]
|
||||||
|
compile_error!("'stdweb' should not be used non-WASM target");
|
||||||
|
Loading…
Reference in New Issue
Block a user