Fix builds.

This commit is contained in:
Stephen Chung 2022-01-16 23:15:37 +08:00
parent e366bd2106
commit 57cfd6a354
4 changed files with 49 additions and 8 deletions

View File

@ -1,5 +1,8 @@
//! Implementation of the Event Handler With State Pattern - JS Style //! Implementation of the Event Handler With State Pattern - JS Style
use rhai::{Dynamic, Engine, Map, Scope, AST}; use rhai::{Dynamic, Engine, Scope, AST};
#[cfg(not(feature = "no_object"))]
use rhai::Map;
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
@ -18,18 +21,25 @@ fn print_scope(scope: &Scope) {
.iter_raw() .iter_raw()
.enumerate() .enumerate()
.for_each(|(i, (name, constant, value))| { .for_each(|(i, (name, constant, value))| {
#[cfg(not(feature = "no_closure"))]
let value_is_shared = if value.is_shared() { " (shared)" } else { "" };
#[cfg(feature = "no_closure")]
let value_is_shared = "";
println!( println!(
"[{}] {}{}{} = {:?}", "[{}] {}{}{} = {:?}",
i + 1, i + 1,
if constant { "const " } else { "" }, if constant { "const " } else { "" },
name, name,
if value.is_shared() { " (shared)" } else { "" }, value_is_shared,
*value.read_lock::<Dynamic>().unwrap(), *value.read_lock::<Dynamic>().unwrap(),
) )
}); });
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() { pub fn main() {
println!("Events Handler Example - JS Style"); println!("Events Handler Example - JS Style");
println!("=================================="); println!("==================================");
@ -151,3 +161,8 @@ 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

@ -17,18 +17,24 @@ fn print_scope(scope: &Scope) {
.iter_raw() .iter_raw()
.enumerate() .enumerate()
.for_each(|(i, (name, constant, value))| { .for_each(|(i, (name, constant, value))| {
#[cfg(not(feature = "no_closure"))]
let value_is_shared = if value.is_shared() { " (shared)" } else { "" };
#[cfg(feature = "no_closure")]
let value_is_shared = "";
println!( println!(
"[{}] {}{}{} = {:?}", "[{}] {}{}{} = {:?}",
i + 1, i + 1,
if constant { "const " } else { "" }, if constant { "const " } else { "" },
name, name,
if value.is_shared() { " (shared)" } else { "" }, value_is_shared,
*value.read_lock::<Dynamic>().unwrap(), *value.read_lock::<Dynamic>().unwrap(),
) )
}); });
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
pub fn main() { pub fn main() {
println!("Events Handler Example - Main Style"); println!("Events Handler Example - Main Style");
println!("==================================="); println!("===================================");
@ -127,3 +133,8 @@ 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,5 +1,8 @@
//! Implementation of the Event Handler With State Pattern - Map Style //! Implementation of the Event Handler With State Pattern - Map Style
use rhai::{Dynamic, Engine, Map, Scope, AST}; use rhai::{Dynamic, Engine, Scope, AST};
#[cfg(not(feature = "no_object"))]
use rhai::Map;
use std::io::{stdin, stdout, Write}; use std::io::{stdin, stdout, Write};
@ -17,18 +20,25 @@ fn print_scope(scope: &Scope) {
.iter_raw() .iter_raw()
.enumerate() .enumerate()
.for_each(|(i, (name, constant, value))| { .for_each(|(i, (name, constant, value))| {
#[cfg(not(feature = "no_closure"))]
let value_is_shared = if value.is_shared() { " (shared)" } else { "" };
#[cfg(feature = "no_closure")]
let value_is_shared = "";
println!( println!(
"[{}] {}{}{} = {:?}", "[{}] {}{}{} = {:?}",
i + 1, i + 1,
if constant { "const " } else { "" }, if constant { "const " } else { "" },
name, name,
if value.is_shared() { " (shared)" } else { "" }, value_is_shared,
*value.read_lock::<Dynamic>().unwrap(), *value.read_lock::<Dynamic>().unwrap(),
) )
}); });
println!(); println!();
} }
#[cfg(not(feature = "no_function"))]
#[cfg(not(feature = "no_object"))]
pub fn main() { pub fn main() {
println!("Events Handler Example - Map Style"); println!("Events Handler Example - Map Style");
println!("=================================="); println!("==================================");
@ -136,3 +146,8 @@ 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

@ -5,7 +5,7 @@ use crate::engine::OP_EQUALS;
use crate::eval::{calc_index, calc_offset_len}; use crate::eval::{calc_index, calc_offset_len};
use crate::plugin::*; use crate::plugin::*;
use crate::{ use crate::{
def_package, Array, Dynamic, Engine, ExclusiveRange, FnPtr, InclusiveRange, NativeCallContext, def_package, Array, Dynamic, ExclusiveRange, FnPtr, InclusiveRange, NativeCallContext,
Position, RhaiResultOf, StaticVec, ERR, INT, Position, RhaiResultOf, StaticVec, ERR, INT,
}; };
#[cfg(feature = "no_std")] #[cfg(feature = "no_std")]
@ -179,8 +179,8 @@ pub mod array_functions {
let mut arr_len = array.len(); let mut arr_len = array.len();
let mut arr = Dynamic::from_array(mem::take(array)); let mut arr = Dynamic::from_array(mem::take(array));
let (mut a1, mut m1, mut s1) = Engine::calc_data_sizes(&arr, true); let (mut a1, mut m1, mut s1) = crate::Engine::calc_data_sizes(&arr, true);
let (a2, m2, s2) = Engine::calc_data_sizes(&item, true); let (a2, m2, s2) = crate::Engine::calc_data_sizes(&item, true);
{ {
let mut guard = arr.write_lock::<Array>().unwrap(); let mut guard = arr.write_lock::<Array>().unwrap();