Skip to main content

floria_plugin_sdk/utils/
assert.rs

1use super::super::{data::*, *};
2
3/// Assert argument count.
4pub 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
9/// Assert argument count.
10pub 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
15/// Assert argument count.
16pub 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}