Ваша идея состоит в том, чтобы иметь Vec
объектов, которые можно конвертировать для тестирования. Однако для Vec
требуются объекты одного типа:
- каждое закрытие имеет свой тип
- Строка отличается от типов закрытия
Пример с Vec
с элементами одного типа может быть Vec
только одного из ваших элементов:
into(vec![|| println!("func 1")]);
into(vec![|| println!("func 2")]);
into(vec![String::from("string 1")]);
// each has one element of ONE type, this compiles and runs
или Vec
нескольких элементов одного типа:
into(vec![String::from("string 1"), String::from("string 2")]);
// each has multiple element of ONE type (String), this compiles and runs
Чтобы ваш пример компилировался, вам нужно будет обернуть ваши элементы в тип обертки (например, enum), который реализует Into<Test>
.
Ваш конкретный пример уже содержит такой тип обертки (* 1023) *) и, таким образом, ваш пример, к сожалению, становится тривиальным, потому что, если вы уже добавили Test
s в свои Vec
, вам больше не придется обращаться к ним (это показано в других примерах).