rust-lang / rust-lang/rust-bindgen
Emitting or deriving trait implementations
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 5.3k
- Forks
- 829
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 15
Description
Let's implement all the traits!!
All of the "Derive Blah when possible" issues have code in tree already that they can crib from, so shouldn't be too difficult to write.
Once we start deriving lots of different traits, I expect we may find that we can unify their implementations, or at least make a generic CanDeriveTrait<T: DerivableTrait> kind of generic thing.
-
"manually" implement
Debugwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/875 -
Derive
Hashwhen possible: https://github.com/rust-lang-nursery/rust-bindgen/issues/876- "manually" implement
Hashwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/877
- "manually" implement
-
Derive
PartialEqwhen possible: https://github.com/rust-lang-nursery/rust-bindgen/issues/878-
"manually" implement
PartialEqwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/879 -
Derive
Eqwhen possible: https://github.com/rust-lang-nursery/rust-bindgen/issues/880- "manually" implement
Eqwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/881
- "manually" implement
-
-
Derive
PartialOrdwhen possible: https://github.com/rust-lang-nursery/rust-bindgen/issues/882-
"manually" implement
PartialOrdwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/883 -
Derive
Ordwhen possible: https://github.com/rust-lang-nursery/rust-bindgen/issues/884- "manually" implement
Ordwhen we cannot derive it: https://github.com/rust-lang-nursery/rust-bindgen/issues/885
- "manually" implement
-
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked issues 875 through 885 and their existing implementations to identify which trait tasks remain unchecked. Determine whether the remaining manual and derived implementations share a workable approach; done means the applicable checklist items are implemented and validated by the corresponding issue tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100