sequence!(
struct SwitchBufferToAlternate => csi!("?1049h")
);
sequence!(
struct SwitchBufferToNormal => csi!("?1049l")
);
sequence!(
struct ScrollBufferUp(u16) =>
|this, f| write!(f, csi!("{}S"), this.0)
);
sequence!(
struct ScrollBufferDown(u16) =>
|this, f| write!(f, csi!("{}T"), this.0)
);
sequence!(
enum ClearLine {
Right => csi!("K"),
Left => csi!("1K"),
All => csi!("2K"),
}
);
sequence!(
enum ClearBuffer {
Below => csi!("J"),
Above => csi!("1J"),
All => csi!("2J"),
SavedLines => csi!("3J"),
}
);
#[cfg(test)]
test_sequences!(
switch_buffer_to_alternate(
SwitchBufferToAlternate => "\x1B[?1049h",
),
switch_buffer_to_main(
SwitchBufferToNormal => "\x1B[?1049l",
),
scroll_buffer_up(
ScrollBufferUp(10) => "\x1B[10S",
),
scroll_buffer_down(
ScrollBufferDown(10) => "\x1B[10T",
),
clear_line(
ClearLine::Right => "\x1B[K",
ClearLine::Left => "\x1B[1K",
ClearLine::All => "\x1B[2K",
),
clear_buffer(
ClearBuffer::Below => "\x1B[J",
ClearBuffer::Above => "\x1B[1J",
ClearBuffer::All => "\x1B[2J",
ClearBuffer::SavedLines => "\x1B[3J",
),
);