Revise required/forbidden features in examples.

This commit is contained in:
Stephen Chung 2022-07-26 17:05:42 +08:00
parent f188f96974
commit a95ef4c255
7 changed files with 130 additions and 138 deletions

View File

@ -82,6 +82,10 @@ name = "rhai-run"
name = "rhai-dbg" name = "rhai-dbg"
required-features = ["debugging"] required-features = ["debugging"]
[[example]]
name = "serde"
required-features = ["serde"]
[profile.release] [profile.release]
lto = "fat" lto = "fat"
codegen-units = 1 codegen-units = 1

View File

@ -1,5 +1,10 @@
//! An example showing how to register a Rust type and use it with arrays. //! An example showing how to register a Rust type and use it with arrays.
#[cfg(any(feature = "no_index", feature = "no_object"))]
fn main() {
panic!("This example does not run under 'no_index' or 'no_object'.")
}
use rhai::{Engine, EvalAltResult}; use rhai::{Engine, EvalAltResult};
#[cfg(not(feature = "no_index"))] #[cfg(not(feature = "no_index"))]
@ -60,8 +65,3 @@ fn main() -> Result<(), Box<EvalAltResult>> {
Ok(()) Ok(())
} }
#[cfg(any(feature = "no_index", feature = "no_object"))]
fn main() {
panic!("This example does not run under 'no_index' or 'no_object'.")
}

View File

@ -1,5 +1,10 @@
//! An example showing how to register a Rust type and methods/getters/setters for it. //! An example showing how to register a Rust type and methods/getters/setters for it.
#[cfg(feature = "no_object")]
fn main() {
panic!("This example does not run under 'no_object'.");
}
use rhai::{Engine, EvalAltResult}; use rhai::{Engine, EvalAltResult};
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
@ -61,8 +66,3 @@ fn main() -> Result<(), Box<EvalAltResult>> {
Ok(()) Ok(())
} }
#[cfg(feature = "no_object")]
fn main() {
panic!("This example does not run under 'no_object'.");
}

View File

@ -1,9 +1,14 @@
//! Implementation of the Event Handler With State Pattern - JS Style //! Implementation of the Event Handler With State Pattern - JS Style
use rhai::{Dynamic, Engine, Scope, AST};
#[cfg(any(feature = "no_function", feature = "no_object"))]
pub fn main() {
panic!("This example does not run under 'no_function' or 'no_object'.")
}
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
use rhai::Map; pub fn main() {
use rhai::{Dynamic, Engine, Map, Scope, AST};
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
const SCRIPT_FILE: &str = "event_handler_js/script.rhai"; const SCRIPT_FILE: &str = "event_handler_js/script.rhai";
@ -35,9 +40,6 @@ fn print_scope(scope: &Scope) {
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() {
println!("Events Handler Example - JS Style"); println!("Events Handler Example - JS Style");
println!("=================================="); println!("==================================");
@ -158,8 +160,3 @@ pub fn main() {
println!("Bye!"); println!("Bye!");
} }
#[cfg(any(feature = "no_function", feature = "no_object"))]
pub fn main() {
panic!("This example does not run under 'no_function' or 'no_object'.")
}

View File

@ -1,6 +1,13 @@
//! Implementation of the Event Handler With State Pattern - Main Style //! Implementation of the Event Handler With State Pattern - Main Style
use rhai::{Dynamic, Engine, Scope, AST};
#[cfg(feature = "no_function")]
pub fn main() {
panic!("This example does not run under 'no_function'.")
}
#[cfg(not(feature = "no_function"))]
pub fn main() {
use rhai::{Dynamic, Engine, Scope, AST};
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
const SCRIPT_FILE: &str = "event_handler_main/script.rhai"; const SCRIPT_FILE: &str = "event_handler_main/script.rhai";
@ -31,8 +38,6 @@ fn print_scope(scope: &Scope) {
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
pub fn main() {
println!("Events Handler Example - Main Style"); println!("Events Handler Example - Main Style");
println!("==================================="); println!("===================================");
@ -130,8 +135,3 @@ pub fn main() {
println!("Bye!"); println!("Bye!");
} }
#[cfg(feature = "no_function")]
pub fn main() {
panic!("This example does not run under 'no_function'.")
}

View File

@ -1,9 +1,14 @@
//! Implementation of the Event Handler With State Pattern - Map Style //! Implementation of the Event Handler With State Pattern - Map Style
use rhai::{Dynamic, Engine, Scope, AST};
#[cfg(any(feature = "no_function", feature = "no_object"))]
pub fn main() {
panic!("This example does not run under 'no_function' or 'no_object'.")
}
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
use rhai::Map; pub fn main() {
use rhai::{Dynamic, Engine, Map, Scope, AST};
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
const SCRIPT_FILE: &str = "event_handler_map/script.rhai"; const SCRIPT_FILE: &str = "event_handler_map/script.rhai";
@ -34,9 +39,6 @@ fn print_scope(scope: &Scope) {
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() {
println!("Events Handler Example - Map Style"); println!("Events Handler Example - Map Style");
println!("=================================="); println!("==================================");
@ -147,8 +149,3 @@ pub fn main() {
println!("Bye!"); println!("Bye!");
} }
#[cfg(any(feature = "no_function", feature = "no_object"))]
pub fn main() {
panic!("This example does not run under 'no_function' or 'no_object'.")
}

View File

@ -1,22 +1,12 @@
//! An example to serialize and deserialize Rust types. //! An example to serialize and deserialize Rust types.
#[cfg(any(not(feature = "serde"), feature = "no_object"))] #[cfg(feature = "no_object")]
fn main() { fn main() {
println!("This example requires the 'serde' feature to run."); panic!("This example does not run under 'no_object'.")
println!("Try: cargo run --features serde --example serde");
} }
#[cfg(feature = "serde")]
#[cfg(not(feature = "no_object"))] #[cfg(not(feature = "no_object"))]
fn main() { fn main() {
example::ser();
println!();
example::de();
}
#[cfg(feature = "serde")]
#[cfg(not(feature = "no_object"))]
mod example {
use rhai::serde::{from_dynamic, to_dynamic}; use rhai::serde::{from_dynamic, to_dynamic};
use rhai::{Dynamic, Engine, Map}; use rhai::{Dynamic, Engine, Map};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@ -89,4 +79,8 @@ mod example {
); );
println!("Deserialized to struct: {:#?}", x); println!("Deserialized to struct: {:#?}", x);
} }
ser();
println!();
de();
} }