Rust 的 Runtime Contracts 可以在 Release 构建中零开销,但编译器不会替你实现
Rust 会自动剥离 debug assertions,但真正的 design-by-contract 需要的远不止 debug_assert!。本文介绍如何在 Release 二进制文件中实现零成本的 runtime contracts,并让它们彻底消失。
Rust 可以在开发阶段强制执行 runtime contracts,并在 release 构建中将其完全抹除。前提是这门语言并没有把 contracts 当作一等公民。你会拿到所有积木,但得自己把它们拼起来。 是最显而易见的起点。它在 debug 构建中执行,在 release 构建中编译为空。这对简单的…