MCPcopy Index your code
hub / github.com/endbasic/endbasic / redraw_line

Method redraw_line

std/src/console/readline.rs:90–109  ·  view source on GitHub ↗

Redraws the rendered viewport and places the cursor at the desired offset.

(&mut self, old_pos: usize, clear_len: usize, new_pos: usize)

Source from the content-addressed store, hash-verified

88
89 /// Redraws the rendered viewport and places the cursor at the desired offset.
90 fn redraw_line(&mut self, old_pos: usize, clear_len: usize, new_pos: usize) -> io::Result<()> {
91 self.console.hide_cursor()?;
92 if old_pos > 0 {
93 self.console.move_within_line(-(old_pos as i16))?;
94 }
95 if !self.rendered.is_empty() {
96 self.console.write(&self.rendered)?;
97 }
98 let written_len = self.rendered_len.max(clear_len);
99 if self.rendered_len < clear_len {
100 let diff = clear_len - self.rendered_len;
101 self.console.write(&" ".repeat(diff))?;
102 }
103 debug_assert!(new_pos <= written_len);
104 let reset = written_len - new_pos;
105 if reset > 0 {
106 self.console.move_within_line(-(reset as i16))?;
107 }
108 self.console.show_cursor()
109 }
110
111 /// Erases a character and redraws the visible tail of the line.
112 fn erase_at(&mut self, cursor_pos: usize, remove_pos: usize) -> io::Result<()> {

Callers 5

do_backspaceMethod · 0.80
do_charMethod · 0.80
do_deleteMethod · 0.80
do_move_toMethod · 0.80
do_up_downMethod · 0.80

Calls 5

hide_cursorMethod · 0.45
move_within_lineMethod · 0.45
is_emptyMethod · 0.45
writeMethod · 0.45
show_cursorMethod · 0.45

Tested by

no test coverage detected