43 lines
1009 B
Rust
43 lines
1009 B
Rust
/// An example how to create custom ANSI sequences.
|
|
use anes::{csi, esc, sequence};
|
|
|
|
fn static_unit_struct() {
|
|
sequence!(
|
|
/// Documentation string is also supported.
|
|
struct Foo => csi!("foo")
|
|
);
|
|
|
|
assert_eq!(&format!("{}", Foo), "\x1B[foo");
|
|
}
|
|
|
|
fn dynamic_struct() {
|
|
sequence!(
|
|
/// Documentation string is also supported.
|
|
struct Foo(u16, u16) =>
|
|
|this, f| write!(f, esc!("{};{}"), this.0, this.1)
|
|
);
|
|
|
|
assert_eq!(&format!("{}", Foo(5, 10)), "\x1B5;10");
|
|
}
|
|
|
|
fn static_enum() {
|
|
sequence!(
|
|
/// Documentation string is also supported.
|
|
enum Foo {
|
|
/// Documentation string is also supported.
|
|
Bar => esc!("bar"),
|
|
/// Documentation string is also supported.
|
|
Baz => csi!("baz"),
|
|
}
|
|
);
|
|
|
|
assert_eq!(&format!("{}", Foo::Bar), "\x1Bbar");
|
|
assert_eq!(&format!("{}", Foo::Baz), "\x1B[baz");
|
|
}
|
|
|
|
fn main() {
|
|
static_unit_struct();
|
|
dynamic_struct();
|
|
static_enum();
|
|
}
|