1use super::*;
2
3pub fn and(vm: &mut VM, (lhs, rhs, extra): (bool, bool, VarArgs<bool>)) -> RantStdResult {
7 let result = (lhs && rhs) && extra.iter().all(|b| *b);
8 vm.cur_frame_mut().write(result);
9 Ok(())
10}
11
12pub fn or(vm: &mut VM, (lhs, rhs, extra): (bool, bool, VarArgs<bool>)) -> RantStdResult {
16 let result = (lhs || rhs) || extra.iter().any(|b| *b);
17 vm.cur_frame_mut().write(result);
18 Ok(())
19}
20
21pub fn not(vm: &mut VM, val: bool) -> RantStdResult {
25 vm.cur_frame_mut().write(!val);
26 Ok(())
27}
28
29pub fn xor(vm: &mut VM, (lhs, rhs): (bool, bool)) -> RantStdResult {
33 vm.cur_frame_mut().write(lhs ^ rhs);
34 Ok(())
35}