1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Parser, encoder and stream scanner for **OSC 7501**, the
//! [Program Status Protocol](https://www.superlogical.com/rex/docs/build/program-status)
//! (spec revision 0.4).
//!
//! `no_std`, no allocation, no dependencies. Enable the `alloc` feature for
//! owned conversions and text sanitizing.
//!
//! - Program side: build a [`Report`] with [`Report::builder`] and write it.
//! - Terminal side: feed bytes to a [`scan::Scanner`], or call [`parse_body`]
//! on an already-extracted OSC body.
//!
//! ```
//! use termstate_core::{Report, State, Terminator};
//!
//! let report = Report::builder(State::Working)
//! .app("cargo")
//! .progress(40)
//! .msg("Compiling termstate")
//! .build()
//! .unwrap();
//! let mut out = String::new();
//! report.write(&mut out, Terminator::St).unwrap();
//! assert_eq!(out, "\x1b]7501;state=working:progress=40:app=cargo:msg=Q29tcGlsaW5nIHRlcm1zdGF0ZQ==\x1b\\");
//! ```
extern crate alloc;
pub use ;
pub use ;
pub use ;
pub use ;
pub use parse_body;
pub use Text;
pub use sanitize;