pub fn draw(&self, width: usize) -> (ColouredString, Option<usize>) {
let mut s = self.prompt.clone();
if self.first_visible > 0 {
- s.push_str(&ColouredString::uniform("<", '>').slice());
+ s.push_str(ColouredString::uniform("<", '>'));
}
let mut pos = self.first_visible;
let mut cursor = None;
(width_so_far + w == width &&
pos + b < self.core.text.len())
{
- s.push_str(&ColouredString::uniform(">", '>').slice());
+ s.push_str(ColouredString::uniform(">", '>'));
break;
} else {
- s.push_str(&ColouredString::plain(
- &self.core.text[pos..pos+b]).slice());
+ s.push_str(ColouredString::plain(
+ &self.core.text[pos..pos+b]));
pos += b;
}
}
}
let start = max(start_pos, region.start);
let end = min(end_pos, region.end);
- cs.push_str(&ColouredString::uniform(
- &self.core.text[start..end], region.colour).slice());
+ cs.push_str(ColouredString::uniform(
+ &self.core.text[start..end], region.colour));
}
Some(cs)
let mut line = ColouredString::plain(" ")
.repeat(curr_indent);
for i in start_pos..break_pos {
- line.push_str(&self.words[i].slice());
+ line.push_str(&self.words[i]);
}
lines.push(line);
start_pos = break_pos;
let mut line = ColouredString::plain(" ").repeat(curr_indent);
for i in start_pos..break_pos {
- line.push_str(&self.words[i].slice());
+ line.push_str(&self.words[i]);
}
lines.push(line);
let space = ColouredString::plain(" ").repeat(FileStatusLine::SPACING);
let push = |line: &mut ColouredString, s: ColouredStringSlice<'_>| {
if !line.is_empty() {
- line.push_str(&space.slice());
+ line.push_str(&space);
}
line.push_str(&s);
};
if let Some(msg) = &self.fs.message {
- let cmsg = ColouredString::plain(msg);
- push(&mut line, cmsg.slice());
+ push(&mut line, ColouredString::plain(msg).slice());
}
let cprop = self.fs.proportion.as_ref()
let mut ckey = ColouredString::plain("[");
let ckp = ColouredString::uniform(
&key_to_string(kp.key), 'k');
- ckey.push_str(&ckp.slice());
- ckey.push_str(&ColouredString::plain("]:").slice());
- ckey.push_str(&kp.description.slice());
+ ckey.push_str(&ckp);
+ ckey.push_str(ColouredString::plain("]:"));
+ ckey.push_str(&kp.description);
push(&mut line, ckey.slice());
}
if let Some(cprop) = cprop {
push(&mut line, cprop.slice());
} else {
- line.push_str(&ColouredString::plain(".").slice());
+ line.push_str(ColouredString::plain("."));
}
// Done. Now centre it in the available space.
let mut desc = ColouredString::uniform("Poll: ", 'H');
for (i, extra) in extras.iter().enumerate() {
if i > 0 {
- desc.push_str(&ColouredString::uniform(", ", 'H').slice());
+ desc.push_str(ColouredString::uniform(", ", 'H'));
}
- desc.push_str(&extra.slice());
+ desc.push_str(extra);
}
let title = Paragraph::new().set_indent(0, 2).add(&desc);
votes.iter().any(|i| *i == thisindex)
});
let mut desc = ColouredString::plain(" ");
- desc.push_str(&ColouredString::plain(&opt.title).slice());
+ desc.push_str(ColouredString::plain(&opt.title));
if let Some(n) = opt.votes_count {
- desc.push_str(&ColouredString::uniform(
- &format!(" ({})", n), 'H').slice());
+ desc.push_str(ColouredString::uniform(
+ &format!(" ({})", n), 'H'));
}
options.push((voted, desc));
}
}
fn ratatui_set_string(buf: &mut Buffer, x: usize, y: usize,
- text: &ColouredStringSlice<'_>) {
+ text: impl ColouredStringCommon) {
let mut x = x;
if let Ok(y) = y.try_into() {
for (frag, colour) in text.frags() {
if y >= h {
break;
}
- ratatui_set_string(buf, 0, y, &line.slice());
+ ratatui_set_string(buf, 0, y, line);
last_y = y;
last_x = line.width();
}
for x in 0..area.width {
buf.get_mut(x, y as u16).reset();
}
- ratatui_set_string(buf, 0, y, &line.slice());
+ ratatui_set_string(buf, 0, y, line);
last_y = y;
last_x = line.width();
}