Мне очень нравится играть с Рустом, долгое время работавшим на С#, но у меня есть вопрос по поводу рефлексии. Возможно, мне не нужно отражать в этом случае, но, учитывая, что Rust строго типизирован, я подозреваю, что мне это нужно (я определенно нуждаюсь в этом в хорошем старом С#, благослови его хлопковые носки).
У меня такая ситуация:
use std::collections::HashMap;
fn invoke_an_unknown_function(
hashmap: HashMap<String, String>,
// Something to denote a function I know nothing about goes here
) {
// For each key in the hash map, assign the value
// to the parameter argument whose name is the key
// and then invoke the function
}
Как бы я это сделал? Я предполагаю, что мне нужно передать какое-то MethodInfo
в качестве второго аргумента функции, а затем поэкспериментировать с этим, чтобы получить аргументы, имя которых является ключом в хэш-карте, и присвоить значения, но я искал API отражения и нашел следующую документацию до Rust 1.0:
Ничто из этого не дает мне достаточно, чтобы начать. Как реализовать функцию, описанную выше?