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"
required-features = ["debugging"]
[[example]]
name = "serde"
required-features = ["serde"]
[profile.release]
lto = "fat"
codegen-units = 1

View File

@ -1,5 +1,10 @@
//! 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};
#[cfg(not(feature = "no_index"))]
@ -60,8 +65,3 @@ fn main() -> Result<(), Box<EvalAltResult>> {
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.
#[cfg(feature = "no_object")]
fn main() {
panic!("This example does not run under 'no_object'.");
}
use rhai::{Engine, EvalAltResult};
#[cfg(not(feature = "no_object"))]
@ -61,8 +66,3 @@ fn main() -> Result<(), Box<EvalAltResult>> {
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
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"))]
use rhai::Map;
pub fn main() {
use rhai::{Dynamic, Engine, Map, Scope, AST};
use std::io::{stdin, stdout, Write};
const SCRIPT_FILE: &str = "event_handler_js/script.rhai";
@ -35,9 +40,6 @@ fn print_scope(scope: &Scope) {
println!();
}
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() {
println!("Events Handler Example - JS Style");
println!("==================================");
@ -158,8 +160,3 @@ pub fn main() {
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
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};
const SCRIPT_FILE: &str = "event_handler_main/script.rhai";
@ -31,8 +38,6 @@ fn print_scope(scope: &Scope) {
println!();
}
#[cfg(not(feature = "no_function"))]
pub fn main() {
println!("Events Handler Example - Main Style");
println!("===================================");
@ -130,8 +135,3 @@ pub fn main() {
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
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"))]
use rhai::Map;
pub fn main() {
use rhai::{Dynamic, Engine, Map, Scope, AST};
use std::io::{stdin, stdout, Write};
const SCRIPT_FILE: &str = "event_handler_map/script.rhai";
@ -34,9 +39,6 @@ fn print_scope(scope: &Scope) {
println!();
}
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() {
println!("Events Handler Example - Map Style");
println!("==================================");
@ -147,8 +149,3 @@ pub fn main() {
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.
#[cfg(any(not(feature = "serde"), feature = "no_object"))]
#[cfg(feature = "no_object")]
fn main() {
println!("This example requires the 'serde' feature to run.");
println!("Try: cargo run --features serde --example serde");
panic!("This example does not run under 'no_object'.")
}
#[cfg(feature = "serde")]
#[cfg(not(feature = "no_object"))]
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::{Dynamic, Engine, Map};
use serde::{Deserialize, Serialize};
@ -89,4 +79,8 @@ mod example {
);
println!("Deserialized to struct: {:#?}", x);
}
ser();
println!();
de();
}