Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend traits chapter #90

Closed
3 tasks
japaric opened this issue Jun 11, 2014 · 4 comments · Fixed by rust-lang/rust#64580
Closed
3 tasks

Extend traits chapter #90

japaric opened this issue Jun 11, 2014 · 4 comments · Fixed by rust-lang/rust#64580

Comments

@japaric
Copy link
Member

japaric commented Jun 11, 2014

  • supertraits FooBar: Foo + Bar
  • trait objects Box<Foo>, &Foo
  • "function overloading" using double dispatch: Vec * Vec and Vec * int
@Screwtapello
Copy link

Once you tell people that a struct can have implementations of any number of traits and the compiler will automatically look up which one to use, the immediate next question is "what happens when there's multiple traits with the same method?"

It would be helpful to have an example to point people to when they ask.

@steveklabnik
Copy link
Member

Yup, all this would be great!

I'm happy to mentor anyone who wants to work on this issue.

@Morsicus
Copy link

I will be happy to help :)

@epage
Copy link
Contributor

epage commented Jan 23, 2018

Another topic that would be useful for traits: comparing

  1. generics (this might have impact on Consider moving generics/gen_trait (to traits?) #913).
  2. boxed traits
  3. trait references

For trait references, I forgot I could even do this and had been using generics until my C++ mindset kicked in and realized it should work and had to prove it to myself.

marioidival added a commit that referenced this issue Sep 18, 2019
Fix #90: Add supertraits and Fully Qualified syntax
tmandry added a commit to tmandry/rust that referenced this issue Sep 18, 2019
Update books

## book

24 commits in 7ddc46460f09a5cd9bd2a620565bdc20b3315ea9..871416b85c1a73717d65d6f4a9ea29e5aef3db0e
2019-06-27 09:50:36 -0400 to 2019-09-16 09:46:20 -0400
- Ch16-2 add missing Ferris (rust-lang/book#2033)
- Update version mentioned on the front page
- Update error messages (rust-lang/book#1737)
- Update version of Rust used to 1.37
- Replace Cargo docs link with a more specific link (rust-lang/book#2066)
- Added missing await reserved keyword (rust-lang/book#2064)
- add does_not_compile for a snippet (rust-lang/book#2056)
- Added second missing dyn (rust-lang/book#2046)
- Removed unnecessary & in function call (rust-lang/book#2038)
- Printing non-Display structs is a *compile* error (rust-lang/book#2031)
- Update Readme mdBook version to match linked file (rust-lang/book#2012)
- Update loose mdbook version reference (rust-lang/book#2003)
- Added a bullet point to have list of things unsafe allows for match u… (rust-lang/book#1993)
- Rewrote a confusing sentence (rust-lang/book#1986)
- Replace deprecated `...` range syntax with `..=` (rust-lang/book#1977)
- correct wording for integration test doc (rust-lang/book#1971)
- Mark the dangle function as does_not_compile (rust-lang/book#1965)
- Add more words to the quote from the actual Go documentation (rust-lang/book#1960)
- Remove unused import in lfp (rust-lang/book#1944)
- A small typo? (rust-lang/book#1931)
- Make the code not compile to match the text (rust-lang/book#1926)
- Ferris does-not-compile added (ch9.2) (rust-lang/book#1925)
- ch07 - remove note regarding use and relative path (rust-lang/book#1820)
- tweak opening paragraph of deref coercions (rust-lang/book#1749)

## rust-by-example

9 commits in e76be6b2dc84c6a992e186157efe29d625e29b94..67cfbf31df880728dcf7cb35b15b028ec92caf31
2019-09-03 07:42:26 -0300 to 2019-09-18 09:36:40 -0300
- Fix rust-lang/rust-by-example#90: Add supertraits and Fully Qualified syntax (rust-lang/rust-by-example#1259)
- Fix some broken links. (rust-lang/rust-by-example#1258)
- Fix rust-lang/rust-by-example#1253: Document enum type aliases (rust-lang/rust-by-example#1255)
- Inline code in some new/changed chapters (rust-lang/rust-by-example#1254)
- fix rust-lang/rust-by-example#1067: explain that unit tests can return Result&lt;()&gt; (rust-lang/rust-by-example#1252)
- Fix rust-lang/rust-by-example#1060: add page on Impl Trait (rust-lang/rust-by-example#1251)
- Fix rust-lang/rust-by-example#1053: Added a page about the dyn keyword (rust-lang/rust-by-example#1249)
- Fix rust-lang/rust-by-example#1110: add examples of ? and Option (rust-lang/rust-by-example#1250)
- fix 1037: add the TryFrom chapter back in (rust-lang/rust-by-example#1247)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants