pub struct TextRange {
pub start: usize,
pub end: usize,
}Expand description
Represents a range in text, used for cursor position and selection.
When start == end, this represents a cursor position (collapsed selection).
When start != end, this represents a text selection.
§Invariants
- Indices are in UTF-8 byte offsets (matching Rust’s
String) startcan be greater thanendfor reverse selections- Use
min()andmax()for ordered access
Fields§
§start: usizeStart index of the range (can be > end for reverse selection)
end: usizeEnd index of the range
Implementations§
Source§impl TextRange
impl TextRange
Sourcepub const fn cursor(position: usize) -> Self
pub const fn cursor(position: usize) -> Self
Creates a collapsed range (cursor) at the given position.
Sourcepub const fn collapsed(&self) -> bool
pub const fn collapsed(&self) -> bool
Returns true if this range is collapsed (cursor, not selection).
Sourcepub fn contains(&self, index: usize) -> bool
pub fn contains(&self, index: usize) -> bool
Returns true if this range contains the given index.
Sourcepub const fn all(length: usize) -> Self
pub const fn all(length: usize) -> Self
Returns a range covering the entire text of given length.
Sourcepub fn safe_slice<'a>(&self, text: &'a str) -> &'a str
pub fn safe_slice<'a>(&self, text: &'a str) -> &'a str
Safely slices the text, clamping to valid UTF-8 char boundaries.
This handles edge cases where:
- Range extends beyond text length
- Range indices are not on char boundaries (e.g., in middle of multi-byte UTF-8)
Returns an empty string if the range is invalid.
Trait Implementations§
impl Copy for TextRange
impl Eq for TextRange
impl StructuralPartialEq for TextRange
Auto Trait Implementations§
impl Freeze for TextRange
impl RefUnwindSafe for TextRange
impl Send for TextRange
impl Sync for TextRange
impl Unpin for TextRange
impl UnwindSafe for TextRange
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more