floria_plugin_sdk/utils/
assert.rs1use super::super::{data::*, *};
2
3pub fn assert_argument_count(arguments: &Vec<Expression>, required: usize) -> Result<(), DispatchError> {
5 let actual = arguments.len();
6 if actual == required { Ok(()) } else { Err(errors::arguments_exact(required, actual)) }
7}
8
9pub fn assert_argument_count_min(arguments: &Vec<Expression>, min: usize) -> Result<(), DispatchError> {
11 let actual = arguments.len();
12 if actual >= min { Ok(()) } else { Err(errors::arguments_min(min, actual)) }
13}
14
15pub fn assert_argument_count_range(arguments: &Vec<Expression>, min: usize, max: usize) -> Result<(), DispatchError> {
17 let actual = arguments.len();
18 if (actual >= min) && (actual <= max) { Ok(()) } else { Err(errors::arguments_range(min, max, actual)) }
19}