1#![feature(slice_take)]
2
3pub mod chars;
4pub mod clap_extra;
5pub mod event;
6pub mod parse;
7pub mod riff;
8
9#[cfg(feature = "cmdline")]
10pub use ::clap;
11pub use clap_extra::*;
12pub use parse::*;
13#[cfg(all(not(target_arch = "wasm32"), feature = "rayon"))]
14pub use rayon;
15#[cfg(feature = "cmdline")]
16pub use semver;
17#[cfg(feature = "cmdline")]
18pub use time;
19pub use {
20 bitfield, bitflags, bitvec, camino, itertools, num, resolve_path, smallvec, smol_str, strsim,
21 winnow
22};
23
24#[cfg(test)]
25mod tests {
26 use winnow::error::ContextError;
27 use winnow::stream::AsBStr;
28 use winnow::{BStr, Parser};
29
30 use super::*;
31
32 #[test]
33 fn test_parse_value() {
34 let mut fortytwo = "42".as_bstr();
35 assert_eq!(
36 dbg!(parse_value::<_, ContextError>.parse_next(&mut fortytwo)).unwrap(),
37 42
38 );
39 assert_eq!(
40 parse_value::<_, ContextError>
41 .parse(BStr::new(b"0x12"))
42 .unwrap(),
43 0x12
44 );
45 assert_eq!(
46 parse_value::<_, ContextError>
47 .parse(BStr::new(b"0x0000"))
48 .unwrap(),
49 0x0000
50 );
51 assert_eq!(
52 parse_value::<_, ContextError>
53 .parse(BStr::new(b"0x4000"))
54 .unwrap(),
55 0x4000
56 );
57 assert_eq!(
58 parse_value::<_, ContextError>
59 .parse(BStr::new(b"0x8000"))
60 .unwrap(),
61 0x8000
62 );
63 assert_eq!(
64 parse_value::<_, ContextError>
65 .parse(BStr::new(b"0xc000"))
66 .unwrap(),
67 0xC000
68 );
69 assert_eq!(
70 parse_value::<_, ContextError>
71 .parse(BStr::new(b"0x1_2"))
72 .unwrap(),
73 0x12
74 );
75 assert_eq!(
76 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"0b0100101"))).unwrap(),
77 0b0100101
78 );
79 assert_eq!(
80 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"0b0_100_101"))).unwrap(),
81 0b0100101
82 );
83 assert_eq!(
84 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"%0100101"))).unwrap(),
85 0b0100101
86 );
87 assert_eq!(
88 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"0100101b"))).unwrap(),
89 0b0100101
90 );
91 assert_eq!(
92 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"160"))).unwrap(),
93 160
94 );
95 assert_eq!(
96 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"1_60"))).unwrap(),
97 160
98 );
99 assert_eq!(
100 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"0b0h"))).unwrap(),
101 0x0B0
102 );
103 assert_eq!(
104 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"0bh"))).unwrap(),
105 0xB
106 );
107
108 assert_eq!(
109 dbg!(parse_value::<_, ContextError>.parse(BStr::new(b"CH"))).unwrap(),
110 0xC
111 );
112
113 assert!(dbg!(parse_value::<_, ContextError>.parse_next(&mut BStr::new(b"CHECK"))).is_err());
114 }
115}