Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions lib/dsc-lib/src/functions/int.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,15 @@ impl Function for Int {

fn invoke(&self, args: &[Value], _context: &Context) -> Result<Value, DscError> {
let arg = &args[0];
let value: i64;
if arg.is_string() {
let value: i64 = if arg.is_string() {
let input = arg.as_str().ok_or(DscError::FunctionArg("int".to_string(), t!("functions.int.invalidInput").to_string()))?;
let result = input.parse::<f64>().map_err(|_| DscError::FunctionArg("int".to_string(), t!("functions.int.parseStringError").to_string()))?;
value = NumCast::from(result).ok_or(DscError::FunctionArg("int".to_string(), t!("functions.int.castError").to_string()))?;
NumCast::from(result).ok_or(DscError::FunctionArg("int".to_string(), t!("functions.int.castError").to_string()))?
} else if arg.is_number() {
value = arg.as_i64().ok_or(DscError::FunctionArg("int".to_string(), t!("functions.int.parseNumError").to_string()))?;
arg.as_i64().ok_or(DscError::FunctionArg("int".to_string(), t!("functions.int.parseNumError").to_string()))?
} else {
return Err(DscError::FunctionArg("int".to_string(), t!("functions.invalidArgType").to_string()));
}
};
Ok(Value::Number(value.into()))
}
}
Expand Down
Loading