1/// An example how to create custom ANSI sequences.
2use anes::{csi, esc, sequence};
3
4fn static_unit_struct() {
5 sequence!(
6 /// Documentation string is also supported.
7 struct Foo => csi!("foo")
8 );
9
10 assert_eq!(&format!("{}", Foo), "\x1B[foo");
11}
12
13fn dynamic_struct() {
14 sequence!(
15 /// Documentation string is also supported.
16 struct Foo(u16, u16) =>
17 |this, f| write!(f, esc!("{};{}"), this.0, this.1)
18 );
19
20 assert_eq!(&format!("{}", Foo(5, 10)), "\x1B5;10");
21}
22
23fn static_enum() {
24 sequence!(
25 /// Documentation string is also supported.
26 enum Foo {
27 /// Documentation string is also supported.
28 Bar => esc!("bar"),
29 /// Documentation string is also supported.
30 Baz => csi!("baz"),
31 }
32 );
33
34 assert_eq!(&format!("{}", Foo::Bar), "\x1Bbar");
35 assert_eq!(&format!("{}", Foo::Baz), "\x1B[baz");
36}
37
38fn main() {
39 static_unit_struct();
40 dynamic_struct();
41 static_enum();
42}
43