jeudi 20 février 2020

Can I pass params as an array?

E.g., instead of

assert_eq!(add(2,3), 5);

is there some way to call something like

let params: [u32; 2] = [2 ,3];
assert_eq!(call!(&add, params), 5);

I would find this functionality very useful for testing. E.g., if I want to write multiple tests for a function that takes a large number of params, I want to be able to reuse a dummy param object like this:

#[cfg(test)]
mod tests {
    const dummy: [u32; 5] = [0, 0, 0, 0, 0]; 

    #[test]
    fn test_first_param() {
        let mut params = dummy;
        params[0] = 1;
        assert_eq!(call!(&add, params)), 1);
    }

    #[test]
    fn test_second_param() {
        let mut params = dummy;
        params[1] = 1;
        assert_eq!(call!(&add, params)), 1);
    }
}

Aucun commentaire:

Enregistrer un commentaire