aboutsummaryrefslogtreecommitdiff
path: root/src/octets.rs
diff options
context:
space:
mode:
authorGravatar Alessandro Ghedini <alessandro@ghedini.me> 2019-02-09 15:51:11 +0000
committerGravatar Alessandro Ghedini <alessandro@ghedini.me> 2019-02-09 15:52:20 +0000
commit770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58 (patch)
treed7bc3f7817e280468bf81f1c96832d9d7a8a4718 /src/octets.rs
parent75af0bed0dbc46b56049b7896b3287deaf2160cc (diff)
downloadquiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.tar.gz
quiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.tar.zst
quiche-770dbc7ed9f2b2fb70d5d3ea75f446b4ef02ca58.zip
octets: panic on impossible cases
Diffstat (limited to '')
-rw-r--r--src/octets.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/octets.rs b/src/octets.rs
index 0a6666d9..866c7206 100644
--- a/src/octets.rs
+++ b/src/octets.rs
@@ -184,7 +184,7 @@ impl<'a> Octets<'a> {
1 => 2,
2 => 4,
3 => 8,
- _ => return Err(Error::BufferTooShort),
+ _ => unreachable!(),
};
if len > self.cap() {
@@ -203,7 +203,7 @@ impl<'a> Octets<'a> {
2 => u64::from(b.get_u16()?),
4 => u64::from(b.get_u32()?),
8 => b.get_u64()?,
- _ => return Err(Error::BufferTooShort),
+ _ => unreachable!(),
};
Ok(out)
@@ -228,8 +228,8 @@ impl<'a> Octets<'a> {
let buf = self.put_u64(v)?;
buf[0] |= 0xc0;
} else {
- return Err(Error::BufferTooShort);
- };
+ panic!("value is too large for varint");
+ }
Ok(())
}
@@ -585,6 +585,14 @@ mod tests {
}
#[test]
+ #[should_panic]
+ fn varint_too_large() {
+ let mut d = [0; 3];
+ let mut b = Octets::with_slice(&mut d);
+ assert!(b.put_varint(std::u64::MAX).is_err());
+ }
+
+ #[test]
fn put_u() {
let mut d = [0; 18];