Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
REVIEW about safety
Lorenz Leutgeb committed 3 months ago
commit 9ddc99e1be7ae4b33d7c959237bd8559f8532811
parent 0858d56080b9ef52dc327680e8fcf21cc25aab88
1 file changed +16 -12
modified CONTRIBUTING.md
@@ -100,22 +100,26 @@ However, there are some instances where they are acceptable:
3. The presence of `Option::None` or `Result::Err` is truly an unexpected scenario
   and you intend the program to panic.

-
#### Use of the term "safe" or "safety"
+
#### Use of the terms "safe" and "safety"

As we are programming in Rust, the terms safe and unsafe are narrowly defined to
-
refer to the safety of the language, i.e. "safe Rust" and "unsafe Rust", as
-
mentioned in [The Rustnomicon].
+
refer to the safety in the sense common in the Rust programming community,
+
i.e. "Safe Rust" and "Unsafe Rust", as mentioned in [The Rustonomicon].

With this in mind, we only accept the use of "safe" about code if it is related
-
to implementing something within the realm of unsafe Rust. The comment must
-
describe why the use of unsafe Rust is in fact safe, and under what conditions.
-

-
We will not accept the use of "safe" if it relates to the use of `panic!`,
-
`unreachable!`, `unwrap`, or `expect`. We will, however, still recommend that
-
those uses are documented – generally using a `# Panic` header in a document
-
string.
-

-
[The Rustnomicon]: https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html
+
to implementing something within the realm of Unsafe Rust, as well as upholding
+
guarantees demanded by Safe Rust. The comment must describe why the use of
+
Unsafe Rust is in fact safe (i.e. which invariants are considered), and under
+
which conditions.
+

+
We will not accept the use of "safe" to describe conditions under which code
+
will not panic, i.e. why it would be panic-free to use `unreachable!`, `unwrap`,
+
or `expect`. As we differentiate between "panic-free Rust" and Safe Rust.
+
We will, however, still recommend that those uses are documented – generally
+
using a `# Panics` header followed by an explanatory paragraph in a documenting
+
comment.
+

+
[The Rustonomicon]: https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html

#### Module imports