Newtypes for working with text sizes/ranges in a more type-safe manner.
This library can help with two things:
- Reducing storage requirements for offsets and ranges, under the assumption that 32 bits is enough.
- Providing standard vocabulary types for applications where text ranges are pervasive.
However, you should not use this library simply because you work with
strings. In the overwhelming majority of cases, using
std::ops::Range<usize> is better. In particular, if you are publishing a
library, using only std types in the interface would make it more
interoperable. Similarly, if you are writing something like a lexer, which
produces, but does not store text ranges, then sticking to
Minimal Supported Rust Version: latest stable.
A range in text, represented as a pair of
A measure of text length. Also, equivalently, an index into text.
Primitives with a textual length that can be passed to