Я работаю с ящиком, в котором есть механизм обратного вызова. Обратный вызов определяется пользователем, но имеет специальную подпись c, которая не позволяет передавать другие значения. Например:
fn callback(id: u32, value: u32) -> u32;
// and would be used as such
library_function(callback);
Так что это было бы хорошо, если бы мне нужно было только сохранить в файл или, например, распечатать, однако мне нужно сохранить значения в векторе. Я бы сделал, например, Python, используя лямбду с «предопределенными» аргументами:
def mycallback(predefined, id, value)
# and calling it as such
predefined = []
library_function(lambda *args: mycallback(predifined, *args)
Решение может включать другие уловки Rust, однако его нельзя записать в файл каждый раз, поскольку это кажется слишком большой проблемой для производительности.