pub struct UTF8Utils;Expand description
UTF-8 handling utilities
Implementations§
Source§impl UTF8Utils
impl UTF8Utils
Sourcepub fn char_pos_to_byte_pos(text: &str, char_pos: usize) -> usize
pub fn char_pos_to_byte_pos(text: &str, char_pos: usize) -> usize
Convert character position to byte position in a UTF-8 string
Sourcepub fn byte_pos_to_char_pos(text: &str, byte_pos: usize) -> usize
pub fn byte_pos_to_char_pos(text: &str, byte_pos: usize) -> usize
Convert byte position to character position in a UTF-8 string
Sourcepub fn display_width(text: &str) -> usize
pub fn display_width(text: &str) -> usize
Get the display width of a string (handling wide characters)
Sourcepub fn truncate_to_width(text: &str, max_width: usize) -> String
pub fn truncate_to_width(text: &str, max_width: usize) -> String
Truncate string to fit within a given display width
Sourcepub fn split_at_char_boundary(text: &str, char_index: usize) -> (&str, &str)
pub fn split_at_char_boundary(text: &str, char_index: usize) -> (&str, &str)
Split text at character boundaries, not byte boundaries
Sourcepub fn is_char_boundary(text: &str, byte_pos: usize) -> bool
pub fn is_char_boundary(text: &str, byte_pos: usize) -> bool
Check if a byte position is at a character boundary
Sourcepub fn next_char_boundary(text: &str, byte_pos: usize) -> usize
pub fn next_char_boundary(text: &str, byte_pos: usize) -> usize
Find the next character boundary after a given byte position
Sourcepub fn prev_char_boundary(text: &str, byte_pos: usize) -> usize
pub fn prev_char_boundary(text: &str, byte_pos: usize) -> usize
Find the previous character boundary before a given byte position
Sourcepub fn char_count(text: &str) -> usize
pub fn char_count(text: &str) -> usize
Count characters in a string (not bytes)
Sourcepub fn pad_to_width(text: &str, width: usize) -> String
pub fn pad_to_width(text: &str, width: usize) -> String
Pad string to a specific display width with spaces
Sourcepub fn is_word_boundary(ch: char) -> bool
pub fn is_word_boundary(ch: char) -> bool
Check if a character is a word boundary
Sourcepub fn find_word_start(text: &str, cursor_pos: usize) -> usize
pub fn find_word_start(text: &str, cursor_pos: usize) -> usize
Find the start of the current word at cursor position
Sourcepub fn find_word_end(text: &str, cursor_pos: usize) -> usize
pub fn find_word_end(text: &str, cursor_pos: usize) -> usize
Find the end of the current word at cursor position
Auto Trait Implementations§
impl Freeze for UTF8Utils
impl RefUnwindSafe for UTF8Utils
impl Send for UTF8Utils
impl Sync for UTF8Utils
impl Unpin for UTF8Utils
impl UnwindSafe for UTF8Utils
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more