lowlevel_types/
ascii.rs

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}