1mod char;
2mod error;
3mod fixedlengthstring;
4
5pub use char::Char;
6pub use error::ASCIIError;
7pub use fixedlengthstring::FixedLengthString;
8
9#[cfg(test)]
10mod tests {
11 #[cfg(feature = "serde")]
12 use serde_test::{Token, assert_de_tokens_error, assert_tokens};
13
14 #[cfg(feature = "serde")]
15 use crate::ascii::{self};
16
17 #[test]
18 #[cfg(feature = "serde")]
19 fn test_char_ser_de() {
20 let c = ascii::Char(0x41);
21
22 assert_tokens(&c, &[Token::U8(0x41)]);
23
24 assert_de_tokens_error::<ascii::Char>(
25 &[Token::U16(0x0041)],
26 "invalid type: integer `65`, expected a single ASCII character",
27 );
28 }
29
30 #[test]
31 #[cfg(feature = "serde")]
32 fn test_fixedlengthstring_ser_de() {
33 let s = ascii::FixedLengthString([ascii::Char(0x41); 1]);
34 assert_tokens(&s, &[Token::BorrowedBytes(&[0x41 as u8])]);
35 assert_de_tokens_error::<ascii::FixedLengthString<1>>(
36 &[Token::BorrowedBytes(&[0x41; 2])],
37 "invalid length 2, expected an array of 1 ASCII bytes",
38 );
39 }
40}