requires
Source: compiler/src/builtin_docs/keywords.md States a precondition, checked when the function is entered: requires cond, "message".
A failed requires panics and blames the caller (the message names the call
site). Clauses come after the signature and before the body. Contextual:
only a keyword in that position.
fn isqrt(int n) -> int
requires n >= 0, "negative input"
{
let r = 0;
while (r + 1) * (r + 1) <= n {
r = r + 1;
}
return r;
}
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.