My least favorite Rust type is std::ops::Range. Range is a foundational type, with magic syntax but a simple definition: struct Range<Idx> { /// The lower bound of the range (inclusive). pub start: Idx, /// The upper bound of the range (exclusive). pub end: Idx, } Idx is typically an integral type, but you can make a Range of anything, which will become important later. Here’s a range of Unit: ().