он был и принтился - на этапе создания нужно делать Backtrace::capure() - thiserror не догадывается это делать, нет средств. anyhow это делает только потому что обьект ошибки создается макросом и он там dyn сплошняком
вобщем придется описать
MyError{ backtrace: Backtrace }
+ конструктор, +debug должен форматнуть этот бектрейс, и это чудо работает
+ я так же делаю импл Context для None, чтобы можно было делать чтото типа "get.n()?" - это аналог get().context("blabla")? из anyhow но без магии
это чистый естественный путь как это всё должно быть, который мало где расписан. thiserror это всё подразумевает, и добавляешь лишь inner и auto-from
Snafu умеет из коробки добавлять бектрейсы к вариантам перечисления ошибку
Обсуждают сегодня