не устраивает? )
если прям очень хочется, то можно запилить экстеншон-трейт, чтобы эту махинацию проделывать в виде some_fn().print_error(), например
Да фиг его. Просто с комбинаторами интересно поиграться, редко использую. Я к тому, нормально ли так делать в принципе ? И второе, как сделать то же самое, только вместо сигнатуры функции, запилить кложур ? Сижу-сижу, не доходит. Можно пример, если не трудно ?
смысла делать через комбинаторы никакого, для этого есть built in конструкция if let. Если забивать гвозди микроскопом то foo().map_err(|e| { log(&e); e });
| some_fn().or_else(|e| { | ^^^^^^^ cannot infer type for type parameter `F` declared on the associated function `or_else` | А как правильно объявить тип кложура до меня всё никак не дойдет
Same | 14 | some_fn().or_else(|e: ErrorKind| { | ^^^^^^^ cannot infer type for type parameter `F` declared on the associated function `or_else` | help: consider specifying the type arguments in the method call | 14 | some_fn().or_else::<F, O>(|e: ErrorKind| { | ^^^^^^^^
or_else ожидает резалт. А тебе нужен скорее map_err. Но как я уже говорил смысла писать комбинатор 0
Эту часть я уже понял :). Сейчас у меня чисто академический интерес - как правильно объявить тип кложура.
ты нормально обяъвил кложуру но она возвращает видимо ерунду
Обсуждают сегодня