Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Usage with proc macros #73

Open
torsteingrindvik opened this issue Nov 12, 2020 · 1 comment
Open

Usage with proc macros #73

torsteingrindvik opened this issue Nov 12, 2020 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@torsteingrindvik
Copy link

Hi, great lib, thanks for making it!

I've just started using it so I'm not sure about the possibilities/limitations yet.
Couldn't find this question anywhere:

Is it possible to use when writing proc macros in a neat way?

I saw the panic_hook example which I think I could possibly use to

  • Write proc macros as usual
  • Call unwrap() on fallible function calls in the proc macro impl
  • It might work?

Not sure how the proc macro span stuff will integrate with this (if it works).

I will experiment a bit with this, but perhaps you have some pointers for how to best do this.

@yaahc
Copy link
Collaborator

yaahc commented Nov 12, 2020

Hi, great lib, thanks for making it!

😳

Is it possible to use when writing proc macros in a neat way?

Sounds doable, depending what you have in mind, however I don't see how this ties in with eyre in specific. Happy to help either way, but I expect you'll want to write your own panic hook and just use that directly to format messages provided via panic! from the proc-macro.

The main issue I foresee you running into is that panic! discards most information about the type used to create the error when one is turned into a panic. The hook only ends up getting a &str or a String most of the time. Right now there are ways around this, for example if you panic directly with panic!(expr) it will type erase the payload as a dyn Any instead of stringifying it, which you can then downcast back to the correct type, which would potentially help you get rich error reports.

I will experiment a bit with this, but perhaps you have some pointers for how to best do this.

I look forward to hearing how it goes! I'd potentially be interested in adding this to spandoc and displaydoc.

@yaahc yaahc added enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Feb 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants