6.7 Контракты
fn withdraw(acc: &var Account, amt: Money)
requires amt > Money.zero()
ensures acc.balance == old(acc.balance) - amt
{ … }requiresпроверяется при входе,ensures— при выходе (result— возвращаемое значение,old(e)— значениеeна входе),invariant(§4.2) — после конструирования иvar fn.- Проверки включены в профилях
devиtest, выключены вprod; управляются ключомcontractsпрофиля. Нарушение — паника.
Связанные диагностики
См. также
Исходник: docs/spec/oxl-standard.md