mirror of
https://github.com/voltrevo/ValueScript.git
synced 2026-01-14 07:57:57 -05:00
Prefer moving Vals instead of passing by reference
This commit is contained in:
@@ -4,7 +4,7 @@ use super::vs_value::Val;
|
||||
use super::vs_value::ValTrait;
|
||||
use super::vs_value::VsType;
|
||||
|
||||
pub fn op_plus(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_plus(left: Val, right: Val) -> Val {
|
||||
let left_prim = left.to_primitive();
|
||||
let right_prim = right.to_primitive();
|
||||
|
||||
@@ -15,19 +15,19 @@ pub fn op_plus(left: &Val, right: &Val) -> Val {
|
||||
return Val::Number(left_prim.to_number() + right_prim.to_number());
|
||||
}
|
||||
|
||||
pub fn op_minus(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_minus(left: Val, right: Val) -> Val {
|
||||
return Val::Number(left.to_number() - right.to_number());
|
||||
}
|
||||
|
||||
pub fn op_mul(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_mul(left: Val, right: Val) -> Val {
|
||||
return Val::Number(left.to_number() * right.to_number());
|
||||
}
|
||||
|
||||
pub fn op_mod(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_mod(left: Val, right: Val) -> Val {
|
||||
return Val::Number(left.to_number() % right.to_number());
|
||||
}
|
||||
|
||||
pub fn op_less(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_less(left: Val, right: Val) -> Val {
|
||||
if left.typeof_() != VsType::Number || right.typeof_() != VsType::Number {
|
||||
std::panic!("Not implemented");
|
||||
}
|
||||
@@ -35,7 +35,7 @@ pub fn op_less(left: &Val, right: &Val) -> Val {
|
||||
return Val::Bool(left.to_number() < right.to_number());
|
||||
}
|
||||
|
||||
pub fn op_triple_ne(left: &Val, right: &Val) -> Val {
|
||||
pub fn op_triple_ne(left: Val, right: Val) -> Val {
|
||||
if left.typeof_() != VsType::Number || right.typeof_() != VsType::Number {
|
||||
std::panic!("Not implemented");
|
||||
}
|
||||
|
||||
@@ -91,14 +91,14 @@ impl VirtualMachine {
|
||||
OpInc => {
|
||||
let register_index = frame.decoder.decode_register_index().unwrap();
|
||||
let mut val = frame.registers[register_index].clone();
|
||||
val = operations::op_plus(&val, &Val::Number(1_f64));
|
||||
val = operations::op_plus(val, Val::Number(1_f64));
|
||||
frame.registers[register_index] = val;
|
||||
},
|
||||
|
||||
OpDec => {
|
||||
let register_index = frame.decoder.decode_register_index().unwrap();
|
||||
let mut val = frame.registers[register_index].clone();
|
||||
val = operations::op_minus(&val, &Val::Number(1_f64));
|
||||
val = operations::op_minus(val, Val::Number(1_f64));
|
||||
frame.registers[register_index] = val;
|
||||
},
|
||||
|
||||
@@ -109,7 +109,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_plus(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_plus(left, right);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -120,7 +120,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_minus(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_minus(left, right);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -131,7 +131,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_mul(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_mul(left, right);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -144,7 +144,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_mod(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_mod(left, right);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -163,7 +163,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_triple_ne(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_triple_ne(left, right);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ impl VirtualMachine {
|
||||
let register_index = frame.decoder.decode_register_index();
|
||||
|
||||
if register_index.is_some() {
|
||||
frame.registers[register_index.unwrap()] = operations::op_less(&left, &right);
|
||||
frame.registers[register_index.unwrap()] = operations::op_less(left, right);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user