сейчас используется unwrap с паникой мне надо чтобы вызывалась моя функция, аналогичная по сути, но не паниковала, а делала что-либо другое
делала что?
сделай extension trait и имплементируй его для Option, Result или что тебе нужно
или тебе надо, чтобы функция, вызывающая unwrap, вызывала твою функцию?
мне надо чтобы я её мог применять там, где сейчас применяется unwrap. например let mut stream = TcpStream::connect("192.168.88.20:1337").unwrap();
а что она делать должна?
да что угодно, допустим принтить в стдэрр
так паник и так туда пишет по умолчанию
но лучше, наверное, использовать unwrap_or_else
а после этого? тебе нужно либо прервать исполнение программы, либо вернуть корректное значение нужного типа
ок, прервать, но так, как нужно мне. проще говоря, выполнить какую-нибудь процедуру если произошла ошибка. ну и в данном случае я не хочу матчить, просто лень
возьми unwrap_or_else если нужен просто кастомный текст ошибки, возьми expect
так переопредели панику
https://doc.rust-lang.org/std/panic/fn.set_hook.html
Обсуждают сегодня