которому мне все время нужно сравнивать и, в случае сопоставления с одним из типов, совершать какие-то действия, каждый раз действия и типы разные. Можно ли как-то сделать какую-то обобщенную функию, которая эту проверку будет проводить и в случае сопоставления будет выполнять действия, которое я прокину ей лямбдой?
Хочется что-то такое:
fn read_value<T, R, F>(v: T, f: F) -> Result<(), &'static str> where F: Fn(R) -> Result<(), &'static str> {
match v {
T(ref mut value) => f(value),
_ => Err(TYPE_MISSMATCH_ERROR)
}
}
Только разве что передавать вторую функцию проверки, если тип енама не постоянный
Обсуждают сегодня