Skip to content

Conversation

@Byron
Copy link
Member

@Byron Byron commented Jan 7, 2026

Tasks

  • exn for gix-date
  • is it possible to downcast to a particular trait that is implemented?
    • No, as Frame can only cast to specific types, not to anything that one of them implements.
    • However, with Tracking Issue for error_generic_member_access rust-lang/rust#99301 soon being merged, I think it's not problem to one day provide information through that mechanism.
    • Meanwhile, with specific types that are well-known, we can already handle everything that IsSpurious handles today.
  • vendor exn for compatibility
    • Error -> ErrorExt
    • Error is top-level type-erased error
    • Utilities to search for types, with filters (i.e. leaf only)
  • exn for gix-transport
  • exn for shortest path of remaining crates to gix
    • gix-revision
  • gix special handling/traits re-implemented via exn

Needed in exn

  • Exn::into_inner() to avoid issues due to Exn not being Error itself.

@Byron Byron changed the title gix-error poke through gix-error punch-through Jan 7, 2026
@Byron Byron marked this pull request as draft January 7, 2026 19:48
@Byron Byron force-pushed the gix-error branch 3 times, most recently from 759c85c to 238924c Compare January 9, 2026 10:34
@Byron Byron mentioned this pull request Jan 9, 2026
Byron added 3 commits January 9, 2026 17:25
This will make for easier introspection for users of these errors.
…f4f260121f9f84305

This is the basis for substantial changes to make it usable for the `gix-*` crates.
The wonderful aspect about this is not only a great reduction in dependencies,
but it also removes most proc-macro invocations.
@Byron Byron force-pushed the gix-error branch 2 times, most recently from 198fe27 to 59b14fa Compare January 9, 2026 18:02
- Top-level `Error`
- dissolve `Exn` back to `Box<E>`
- Use `dyn Error + Send + Sync + 'static'`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants