которому мне все время нужно сравнивать и, в случае сопоставления с одним из типов, совершать какие-то действия, каждый раз действия и типы разные. Можно ли как-то сделать какую-то обобщенную функию, которая эту проверку будет проводить и в случае сопоставления будет выполнять действия, которое я прокину ей лямбдой?
                  
                  
                  Хочется что-то такое:
                  
                  
                  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)
                  
                  
                    }
                  
                  
                  }
                  
                  
                
Только разве что передавать вторую функцию проверки, если тип енама не постоянный
Обсуждают сегодня