| /// 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(); | |
| } |