where
Source: compiler/src/builtin_docs/keywords.md Adds trait constraints to a generic function: where Trait<A, B>.
It comes after the return type and is needed for constraints with several
type parameters. A single-parameter bound is written on the parameter:
fn f<T: Num>, or a separate bounded impl block, impl Cell<T: Num> { … },
for methods that need a bound on the impl’s parameter. A unary
where Num<T> is an error.
fn convert<A, B>(A x) -> B where Into<A, B> {
return into(x);
}
class Cell<T> {
pub v: T,
}
impl Cell<T: Num> {
pub fn doubled() -> T {
return self.v + self.v;
}
}
See also#
fn: Declares a function, a method, or (written in an expression) an anonymous function.let: Declares a mutable local variable.const: Declares a binding that cannot be reassigned: a local, a module constant, or a class field that is set only bynew.static: Declares a module-level or class-level slot shared by the whole program, or a method withoutself.readonly: A read-only view of a value: nothing reachable through it can be changed.if: Runs a block when aboolcondition is true.else: Introduces the branch of anifthat runs when its condition is false (or its pattern does not match).while: Repeats a block while aboolcondition is true.