Skip to content

Commit 0de8380

Browse files
Merge pull request #358 from Havvy/impl-trait-placeholder
Placeholder docs for impl Trait
2 parents ea1240d + 1812f47 commit 0de8380

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/types.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,34 @@ fn to_vec<A: Clone>(xs: &[A]) -> Vec<A> {
654654
Here, `first` has type `A`, referring to `to_vec`'s `A` type parameter; and
655655
`rest` has type `Vec<A>`, a vector with element type `A`.
656656

657+
## Anonymous type parameters
658+
659+
> Note: This section is a placeholder for more comprehensive reference
660+
> material.
661+
662+
> Note: This is often called "impl Trait in argument position".
663+
664+
Functions can declare an argument to be an anonymous type parameter where the
665+
callee must provide a type that has the bounds declared by the anonymous type
666+
parameter and the function can only use the methods available by the trait
667+
bounds of the anonymous type parameter.
668+
669+
They are written as `impl` followed by a set of trait bounds.
670+
671+
## Abstract return types
672+
673+
> Note: This section is a placeholder for more comprehensive reference
674+
> material.
675+
676+
> Note: This is often called "impl Trait in return position".
677+
678+
Functions, except for associated trait functions, can return an abstract
679+
return type. These types stand in for another concrete type where the
680+
use-site may only use the trait methods declared by the trait bounds of the
681+
type.
682+
683+
They are written as `impl` followed by a set of trait bounds.
684+
657685
## Self types
658686

659687
The special type `Self` has a meaning within traits and implementations: it

0 commit comments

Comments
 (0)