Index

!, see exclamation mark
π, 1
(), 1, 2
.., see struct update syntax
2018 edition, 1
2021 edition, 1
?, 1, 2, 3, 4, 5, 6, 7
abstract class, 1
abstract syntax tree, 1, 2
Adams, Douglas, 1
Add, 1, 2
AddAssign, 1
AddressSanitizer, 1
ADT, see algebraic data type
AFL, 1
afraid, reasons to be, 1
algebraic data type, 1, 2
aliasing, 1
alignment, 1, 2
all, 1
alloc, 1, 2, 3
allocation, fallible, 1
allocation, infallible, 1
allow, 1
also-implements, 1
Android, 1
anonymous lifetime, 1
Any, 1
any, 1
anyhow, 1
ar, 1
Arc, 1, 2, 3, 4, 5, 6
array, 1, 2
as, 1, 2, 3
AsMut, 1, 2, 3
AsRef, 1, 2, 3, 4
as_ref, 1
associated type, 1, 2
AST, see abstract syntax tree
async, 1, 2
atomic, 1
attacker, 1
auto trait, 1
B language, 1
back-compatibility, 1, 2, 3, 4, 5, 6, 7, 8, 9
Barbossa, Hector, 1
bare-metal Rust, 1
benchmarks, 1, 2
bindgen, 1, 2, 3
BitAnd, 1
BitAndAssign, 1
BitOr, 1
BitOrAssign, 1
BitXor, 1
BitXorAssign, 1
black_box, 1
blanket implementation, 1, 2, 3, 4, 5
bool, 1, 2, 3
Borrow, 1, 2
borrow, 1
borrow checker, 1, 2, 3, 4, 5, 6, 7, 8
BorrowMut, 1, 2
Bos, Mara, 1, 2
bounds checking, 1
Box, 1, 2, 3
      Box::from_raw, 1
      Box::into_raw, 1
BTreeMap, 1
BTreeSet, 1, 2
bug, 1, 2, 3, 4, 5, 6
build script, see build.rs
build.rs, 1, 2, 3
builder, 1, 2
builder pattern, 1, 2
byteorder, 1
C, 1, 2, 3, 4, 5, 6
      C99, 1
C++, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
      C++11, 1, 2, 3
      C++20, 1
c++filt, 1
cackle maniacally, 1
Cargill, Tom, 1
Cargo, 1, 2, 3, 4, 5, 6, 7, 8
cargo, 1
cargo bench, 1, 2
cargo check, 1
cargo doc, 1, 2, 3
cargo fmt, 1
cargo metadata, 1
cargo tree, 1, 2
cargo update, 1
cargo-bench, 1
cargo-deny, 1, 2, 3, 4
cargo-expand, 1, 2, 3, 4
cargo-fuzz, 1, 2
cargo-semver-checks, 1, 2
cargo-tarpaulin, 1, 2
cargo-udeps, 1, 2, 3
Cargo.lock, 1, 2
Cargo.toml, 1, 2, 3, 4, 5, 6
cargo_metadata, 1
cast, 1, 2, 3, 4
catch (C++), 1
catch_unwind, 1, 2
Cell, 1, 2, 3
cfg, 1
cfg_attr, 1
chain, 1
channel (Go), 1
char, 1
Chromium, 1
CI, see continuous integration
c_int, 1
Clang, 1
Clippit, 1
Clippy, 1, 2, 3, 4, 5
Clone, 1, 2, 3, 4, 5, 6
clone-on-write, 1, 2
cloned, 1, 2
closure, 1
coercion, see type coercion
collect, 1
Comprehensive Rust, 1
conditional compilation, 1
continuous integration, 1, 2, 3, 4, 5, 6, 7, 8, 9
copied, 1
Copy, 1, 2, 3, 4, 5
copy semantics, 1, 2
core, 1, 2
corpus, 1
Cow, 1, 2
CPAN, 1
crates.io, 1, 2, 3, 4, 5, 6
criterion, 1, 2
cross-compilation, 1
CRUD, 1
CStr, 1
CString, 1
cxx, 1, 2
cycle, 1
data race, 1, 2
Davidoff, Sergey "Shnatsel", 1
deadlock, 1, 2, 3
Debug, 1, 2, 3, 4, 5
decorator, 1
Default, 1, 2, 3, 4
default features, 1, 2
default implementation, 1, 2, 3, 4, 5
defer (Go), 1
denial-of-service, 1
Dependabot, 1, 2, 3
dependency graph, 1, 2
Deref, 1, 2, 3, 4
DerefMut, 1, 2, 3, 4
derive, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
derive macro, 1
derive_builder, 1
Display, 1, 2, 3, 4, 5
Div, 1
DivAssign, 1
dlopen, 1
doc test, see test, doc
domain-specific language, 1, 2
DoubleEndedIterator, 1, 2
downcast_mut, 1
downcast_ref, 1
Drop, 1, 2, 3, 4, 5, 6, 7, 8
drop, 1
DSL, see domain-specific language
duck typing, 1
dynamic_cast (C++), 1
Effective C++, 1
Effective Java, 1, 2, 3, 4
enum, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
enumerate, 1
eprintln!, 1
Eq, 1, 2, 3
Err, 1, 2
Error, 1, 2, 3, 4
error handling, 1
ExactSizeIterator, 1, 2
exception, 1, 2
exception safety, 1
exclamation mark, 1
expect, 1, 2, 3
expect_err, 1
extern "C", 1, 2
extern crate, 1
f32, 1
      f32::NAN, 1
f64, 1
      f64::NAN, 1
fallible, 1, 2
fat pointer, 1, 2, 3, 4, 5
@FearlessSon, 1
feature, 1, 2, 3, 4, 5, 6, 7
feature unification, 1, 2
FFI, see foreign function interface
file!(), 1
filter, 1
find, 1
flatten, 1
floating point, 1, 2
fmt, 1
Fn, 1, 2
FnMut, 1, 2
FnOnce, 1, 2
fold, 1
for, 1, 2
for-each, 1
for_each, 1
foreign function interface, 1, 2, 3, 4, 5
formal verification, 1
format!, 1, 2
format_args!, 1
free (C), 1
From, 1, 2, 3, 4, 5, 6, 7, 8, 9
FromIterator, 1
from_utf8, 1
from_utf8_unchecked, 1
function, 1
function pointer, 1, 2
functional style, 1
fuzz test, see test, fuzz
generics, 1, 2, 3, 4, 5, 6
      generic function, 1, 2, 3, 4
      generic method, 1
      generic trait, 1
      generic type, 1
get_mut, 1
GitHub Actions, 1
Gjengset, Jon, 1, 2
glob import, see wildcard import
global variable, 1, 2
Go, 1, 2, 3, 4, 5, 6, 7
Godbolt compiler explorer, 1, 2, 3
Graham, Paul, 1
gratuitous use of Latin, 1
Groenen, Nick, 1
Hash, 1, 2, 3, 4
HashMap, 1, 2, 3, 4
HashSet, 1, 2
Haskell, 1
header file (C), 1
heap, 1, 2, 3, 4, 5, 6
Here Be Dragons, 1, 2
hygienic macro, 1, 2
Hyrum's Law, 1, 2, 3
i128, 1
i16, 1
i32, 1
i64, 1
i8, 1
if let, 1
include!, 1
Index, 1, 2
IndexMut, 1, 2
infallible, 1, 2
inline, 1
integration test, see test, integration
interior mutability, 1, 2, 3
Into, 1, 2, 3, 4
IntoIterator, 1, 2
is, 1
is_empty(), 1
isize, 1
iterable, 1
Iterator, 1, 2, 3, 4, 5, 6
iterator, 1
iterator adaptor, see iterator transform
iterator transform, 1, 2
Java, 1, 2, 3, 4, 5, 6
lambda expression, 1
lattice, 1
layout, 1, 2
leak, 1
let, 1
libFuzzer, 1
library, 1
      static library, 1
license, 1, 2
lifetime, 1, 2, 3, 4
lifetime annotation, 1, 2
lifetime bound, 1
lifetime elision, 1, 2
lifetime parameter, 1
line!(), 1
linker, 1, 2, 3, 4
Liskov substitution, 1, 2, 3
Lisp, 1
lock inversion, 1
lock_guard (C++), 1
locking hierarchy, 1
log, 1
macro, 1, 2, 3, 4, 5, 6
      macro, declarative, 1, 2
      macro, derive, 1, 2, 3, 4, 5
      macro, procedural, 1
macro_export, 1
main, 1, 2
map, 1
map_err, 1
Markdown, 1
marker trait, 1, 2, 3, 4, 5
match, 1, 2, 3
max, 1
max_by, 1
memory safety, 1
metaprogramming, 1
method, 1, 2, 3
method signature, 1
Meyers, Scott, 1, 2
min, 1
min_by, 1
minimum supported Rust version, 1, 2, 3
Miri, 1, 2
module, 1, 2, 3
monomorphization, 1, 2, 3, 4
More Effective C++, 1
move semantics, 1, 2, 3, 4
mpsc, 1
MSRV, see minimum supported Rust version
Mul, 1
MulAssign, 1
must_use, 1
mutable reference, 1
Mutex, 1, 2, 3, 4, 5, 6, 7, 8
MutexGuard, 1, 2, 3, 4
name mangling, 1, 2
Neg, 1, 2
newtype pattern, 1, 2, 3
nm, 1
no_deadlocks, 1
no_global_oom_handling, 1
no_mangle, 1, 2
non-lexical lifetimes, 1, 2, 3
None, 1, 2, 3
non_exhaustive, 1, 2
no_panic, 1
no_std, 1, 2, 3, 4, 5
Not, 1
nothrow (C++), 1
nth, 1
NULL (SQL), 1
nullptr (C++), 1
object safety, 1, 2, 3
object-oriented, 1, 2, 3, 4, 5
OCaml, 1
ODR, see one definition rule
Ok, 1, 2
once_cell, 1
one definition rule, 1, 2
OO, see object-oriented
open-box, 1
Option, 1, 2, 3, 4, 5, 6, 7
Ord, 1, 2, 3, 4, 5
orphan rule, 1, 2, 3, 4
OSS-Fuzz, 1
ostrich maneuver, 1
ouroborous, 1
panic!, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
parking_lot::deadlock, 1
PartialEq, 1, 2, 3
PartialOrd, 1, 2, 3
partition, 1
Pin, 1, 2
Pointer, 1, 2
pointer, 1, 2
pop, 1
position, 1
prelude, 1, 2, 3, 4
preprocessor (C), 1, 2
principle of least astonishment, 1, 2, 3
printf (C), 1
println!, 1
proc macro, see macro, procedural
product, 1
Programming Rust, 1, 2
prost, 1
protocol buffer, 1
pseudo-pointer, 1
pub, 1, 2, 3
      pub(crate), 1
      pub(super), 1
push, 1
Python, 1, 2
question mark, see ?
RAII, 1, 2, 3, 4, 5, 6
rand, 1, 2
Range, 1
range expression, 1, 2
raw identifier prefix, 1
raw pointer, 1, 2, 3, 4
Rc, 1, 2, 3, 4, 5, 6
re-export, 1, 2, 3
receiver, 1, 2
Reddit, 1
reduce, 1
Ref<T>, 1
RefCell, 1, 2, 3, 4, 5
reference, 1, 2, 3, 4, 5, 6
reflection, 1
reflexive, 1, 2
RefMut<T>, 1
Reid, Alastair, 1
Rem, 1
RemAssign, 1
replace, 1, 2
repr(C), 1
repr(transparent), 1
required method, 1
Result, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
return, 1
rev, 1
rewrite it in Rust, 1, 2
RiiR, see rewrite it in Rust
RTTI, 1
Rust for Rustaceans, 1, 2
Rust playground, 1
rust-analyzer, 1
rust-toolchain.toml, 1
RustCrypto, 1
rustfilt, 1
rustfmt, 1, 2, 3
Rustonomicon, 1, 2
rustup, 1
RwLock, 1, 2, 3
safety comments, 1, 2
scan, 1
scope, 1
segment, 1
Self, 1, 2, 3, 4, 5
semantic versioning, 1, 2, 3, 4, 5
semicolon, 1
semver, see semantic versioning
Send, 1, 2, 3
sentinel values, 1, 2
separate compilation, 1
serde, 1, 2
shared-state, 1, 2, 3, 4, 5, 6
shared_ptr (C++), 1, 2
Shl, 1
ShlAssign, 1
Shr, 1
ShrAssign, 1
signature, 1
Sized, 1, 2
skip, 1
skip_while, 1
sleep, 1
slice, 1
SliceIndex<T>, 1
smart pointer, 1, 2, 3, 4
Smith, Agent, 1
software engineering, 1
Some, 1, 2, 3
Soong, 1
spin, 1
SQL, 1
stack, 1, 2
stack pointer, 1
'static, 1
static, 1
std, 1, 2
std::any::type_name, 1
step_by, 1
String, 1, 2, 3
struct, 1, 2, 3, 4, 5
struct, 1
struct update syntax, 1, 2
Sub, 1, 2
SubAssign, 1
sum, 1
supply chain attacks, 1, 2
Sutter, Herb, 1
swap, 1
syn, 1, 2, 3
Sync, 1, 2, 3
synchronization, 1
syntactic sugar, 1
sysroot crates, 1
tag (Git), 1
take, 1, 2
take_while, 1
target_arch, 1
target_endian, 1
target_os, 1
target_pointer_width, 1
taste, 1
template (C++), 1, 2
temporary, 1
test, 1
      test, doc, 1, 2, 3
      test, flaky, 1
      test, fuzz, 1
      test, integration, 1, 2, 3
      test, unit, 1, 2, 3
text section, 1
theory vs. practice, 1
@thingskatedid, 1
thiserror, 1
thread-compatible, 1
thread-hostile, 1
thread-safe, 1, 2
ThreadSanitizer, 1, 2
TLV, 1
Tolnay, David, 1, 2, 3, 4, 5
ToOwned, 1, 2
trait, 1, 2, 3, 4, 5
trait bound, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
trait coherence, 1, 2
trait object, 1, 2, 3, 4, 5, 6, 7, 8
trentj, 1
Triplett, Josh, 1
try_find, 1
try_fold, 1
try_for_each, 1
TryFrom, 1, 2
TryInto, 1, 2
tuple, 1
tuple struct, 1, 2
Turon, Aaron, 1
type alias, 1, 2
type coercion, 1, 2, 3, 4
type erasure, 1
type system, 1, 2, 3, 4
TypeId, 1
typeid (C++), 1
u128, 1
u16, 1
u32, 1
u64, 1
u8, 1
Unicode, 1, 2
union, 1
unique_ptr (C++), 1
unit test, see test, unit
unit type, see ()
unreachable!, 1
unsafe, 1, 2, 3, 4, 5, 6, 7
unsafe_op_in_unsafe_fn, 1
Unstable Book, 1
unwrap, 1, 2
unwrap_err, 1
unzip, 1
upcast, 1
use, 1, 2, 3
use-after-free, 1
usize, 1
UTF-8, 1, 2, 3
Vec, 1, 2, 3, 4
vigilance, constant, 1
void (C), 1
vtable, 1, 2, 3, 4, 5, 6, 7
Weak, 1, 2
weak_ptr (C++), 1
WebAssembly, 1
wildcard dependency, 1, 2
wildcard import, 1, 2, 3
Wilde, Oscar, 1
Winters, Titus, 1, 2
zip, 1