| use {serde_test::*, std::ops, text_size::*}; | |
| fn size(x: u32) -> TextSize { | |
| TextSize::from(x) | |
| } | |
| fn range(x: ops::Range<u32>) -> TextRange { | |
| TextRange::new(x.start.into(), x.end.into()) | |
| } | |
| #[test] | |
| fn size_serialization() { | |
| assert_tokens(&size(00), &[Token::U32(00)]); | |
| assert_tokens(&size(10), &[Token::U32(10)]); | |
| assert_tokens(&size(20), &[Token::U32(20)]); | |
| assert_tokens(&size(30), &[Token::U32(30)]); | |
| } | |
| #[test] | |
| fn range_serialization() { | |
| assert_tokens( | |
| &range(00..10), | |
| &[Token::Tuple { len: 2 }, Token::U32(00), Token::U32(10), Token::TupleEnd], | |
| ); | |
| assert_tokens( | |
| &range(10..20), | |
| &[Token::Tuple { len: 2 }, Token::U32(10), Token::U32(20), Token::TupleEnd], | |
| ); | |
| assert_tokens( | |
| &range(20..30), | |
| &[Token::Tuple { len: 2 }, Token::U32(20), Token::U32(30), Token::TupleEnd], | |
| ); | |
| assert_tokens( | |
| &range(30..40), | |
| &[Token::Tuple { len: 2 }, Token::U32(30), Token::U32(40), Token::TupleEnd], | |
| ); | |
| } | |
| #[test] | |
| fn invalid_range_deserialization() { | |
| assert_tokens::<TextRange>( | |
| &range(62..92), | |
| &[Token::Tuple { len: 2 }, Token::U32(62), Token::U32(92), Token::TupleEnd], | |
| ); | |
| assert_de_tokens_error::<TextRange>( | |
| &[Token::Tuple { len: 2 }, Token::U32(92), Token::U32(62), Token::TupleEnd], | |
| "invalid range: 92..62", | |
| ); | |
| } |