172 похожих чатов

Чем if let Err(e) = some_fn() { println!("{:?}", e); }

не устраивает? )
если прям очень хочется, то можно запилить экстеншон-трейт, чтобы эту махинацию проделывать в виде some_fn().print_error(), например

9 ответов

21 просмотр

Да фиг его. Просто с комбинаторами интересно поиграться, редко использую. Я к тому, нормально ли так делать в принципе ? И второе, как сделать то же самое, только вместо сигнатуры функции, запилить кложур ? Сижу-сижу, не доходит. Можно пример, если не трудно ?

Lighty
Да фиг его. Просто с комбинаторами интересно поигр...

смысла делать через комбинаторы никакого, для этого есть built in конструкция if let. Если забивать гвозди микроскопом то foo().map_err(|e| { log(&e); e });

Пух
|e| {...}

| some_fn().or_else(|e| { | ^^^^^^^ cannot infer type for type parameter `F` declared on the associated function `or_else` | А как правильно объявить тип кложура до меня всё никак не дойдет

Αλεχ Zhukovsky
e: E

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| { | ^^^^^^^^

Lighty
Same | 14 | some_fn().or_else(|e: ErrorKind...

or_else ожидает резалт. А тебе нужен скорее map_err. Но как я уже говорил смысла писать комбинатор 0

Αλεχ Zhukovsky
or_else ожидает резалт. А тебе нужен скорее map_er...

Эту часть я уже понял :). Сейчас у меня чисто академический интерес - как правильно объявить тип кложура.

Lighty
Эту часть я уже понял :). Сейчас у меня чисто акад...

ты нормально обяъвил кложуру но она возвращает видимо ерунду

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта