Improve the function pointer docs
* Reduce duplicate impls; show only the `fn (T)` and include a sentence saying that there exists up to twelve of them. * Show `Copy` and `Clone`. * Show auto traits like `Send` and `Sync`, and blanket impls like `Any`.
This commit is contained in:
parent
1169832f2f
commit
5271e32c46
12 changed files with 222 additions and 69 deletions
|
@ -4,7 +4,7 @@ enum, union, or trait object.
|
|||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0118
|
||||
impl fn(u8) { // error: no nominal type found for inherent implementation
|
||||
impl<T> T { // error: no nominal type found for inherent implementation
|
||||
fn get_state(&self) -> String {
|
||||
// ...
|
||||
}
|
||||
|
@ -20,8 +20,8 @@ trait LiveLongAndProsper {
|
|||
fn get_state(&self) -> String;
|
||||
}
|
||||
|
||||
// and now you can implement it on fn(u8)
|
||||
impl LiveLongAndProsper for fn(u8) {
|
||||
// and now you can implement it on T
|
||||
impl<T> LiveLongAndProsper for T {
|
||||
fn get_state(&self) -> String {
|
||||
"He's dead, Jim!".to_owned()
|
||||
}
|
||||
|
@ -33,9 +33,9 @@ For example, `NewType` is a newtype over `Foo` in `struct NewType(Foo)`.
|
|||
Example:
|
||||
|
||||
```
|
||||
struct TypeWrapper(fn(u8));
|
||||
struct TypeWrapper<T>(T);
|
||||
|
||||
impl TypeWrapper {
|
||||
impl<T> TypeWrapper<T> {
|
||||
fn get_state(&self) -> String {
|
||||
"Fascinating!".to_owned()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue