Comments (3)
Sounds great @yaahc , thanks for the quick, and helpful response ❤️ !
from color-eyre.
This is caused by the separation between eyre
and color-eyre
and the way its currently designed. The eyre!
macro is exported by the eyre
crate, which knows nothing about color-eyre
or its notion of sections. The type that is returned from eyre!
is a Report<H>
where H
hasn't been resolved. And then, to make this all worse the note
function and other section modifying functions are similarly defined outside of eyre
via an extension trait. It might be possible for me to add an identical trait to SectionExt
that works directly on Report
rather than being a combinator that applies to Report
s inside of Result
s, so it might be possible to fix this but ultimately it doesn't matter.
All of this boils down to the fact that eyre
's 0.4
release depends on generics to specify the handler type. The next release of eyre
, which I'm aiming to get out today, removes the generic parameter and instead uses a globally installed hook to construct handler trait objects which can be boxed and stored by eyre!
. On the next release this should "just work".
from color-eyre.
My pleasure, ty for the helpful suggestions!
side note, if you're interested in trialing the new release and helping me catch any issues I may have missed pre release now is the time. The only thing left to do is to update the documentation to reflect the new reality of how everything works and possibly tweek a few of the interfaces to be easier to use.
Here's the relevant include if you're interested
color-eyre = { git = "https://github.com/yaahc/color-eyre.git", branch = "hooked" }
from color-eyre.
Related Issues (20)
- Attach Report's to an error via Section::error()
- Report creation takes a lock HOT 3
- Print a backtrace/spantrace to debug logs not to stderr HOT 1
- panic in tests (I used master) HOT 1
- Is there an easy way to make custom errors have equivalent report functions HOT 1
- show sections when panic macro is called HOT 1
- Output has few/no colors in Gnome Terminal
- should info! events be captured and printed as part of the SpanTrace? HOT 1
- Mechanism to add sections in hook callback
- Omit numbering of errors if there's only one HOT 2
- color-eyre uses the same inexplicable information order as standard backtraces HOT 1
- Automate synchronization between docs.rs and README.md
- Disable setting panic hook HOT 2
- Ergonomics: Full re-exports from `eyre`; export `color_eyre::eyre!` macro, rather than `eyre` crate HOT 2
- Add a config option to print panic output to stdout.
- First eyre::Result::Err variant is slow to construct if backtraces are enabled
- Construct a new `Handler` after already having created one / modify handler HOT 1
- Wrap types so we don't have to re-export `owo_colors` HOT 2
- New version of backtrace doesn't export `gimli-symbolize` anymore
- Suggestions only displayed when printing the Debug of an error, not Display HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from color-eyre.