From 102f537d403661af9fdd82131eeea8dd4ba42e51 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Sun, 22 Dec 2019 22:07:54 +0100 Subject: [PATCH] Fix remaining lints --- interop/src/main.rs | 2 + quinn-h3/examples/h3_client.rs | 2 +- quinn-h3/src/frame.rs | 2 +- quinn-h3/src/lib.rs | 2 + quinn-h3/src/proto/frame.rs | 2 +- quinn-h3/src/qpack/dynamic.rs | 38 +- quinn-h3/src/qpack/prefix_int.rs | 12 +- quinn-h3/src/qpack/prefix_string/decode.rs | 1491 ++++++++++---------- quinn-h3/src/qpack/prefix_string/encode.rs | 3 +- quinn-proto/src/frame.rs | 3 +- quinn-proto/src/tests/mod.rs | 6 +- quinn-proto/src/tests/util.rs | 3 +- quinn/examples/client.rs | 4 +- 13 files changed, 783 insertions(+), 787 deletions(-) diff --git a/interop/src/main.rs b/interop/src/main.rs index 698aedaf3..fd8f0e4b3 100644 --- a/interop/src/main.rs +++ b/interop/src/main.rs @@ -1,3 +1,5 @@ +#![allow(clippy::mutex_atomic)] + use std::{ net::{SocketAddr, ToSocketAddrs}, sync::{Arc, Mutex}, diff --git a/quinn-h3/examples/h3_client.rs b/quinn-h3/examples/h3_client.rs index 036076c83..020876118 100644 --- a/quinn-h3/examples/h3_client.rs +++ b/quinn-h3/examples/h3_client.rs @@ -70,7 +70,7 @@ async fn request(client: Client, url: &Url) -> Result<()> { let remote = (url.host_str().unwrap(), url.port().unwrap_or(4433)) .to_socket_addrs()? .next() - .ok_or(anyhow!("couldn't resolve to an address"))?; + .ok_or_else(|| anyhow!("couldn't resolve to an address"))?; let (quic_driver, h3_driver, conn) = client .connect(&remote, url.host_str().unwrap_or("localhost"))? .await diff --git a/quinn-h3/src/frame.rs b/quinn-h3/src/frame.rs index 29fadf882..f570312da 100644 --- a/quinn-h3/src/frame.rs +++ b/quinn-h3/src/frame.rs @@ -228,7 +228,7 @@ mod tests { buf.truncate(buf.len() - 1); let mut decoder = FrameDecoder::default(); - assert_matches!(decoder.decode(&mut buf.into()), Ok(None)); + assert_matches!(decoder.decode(&mut buf), Ok(None)); } #[test] diff --git a/quinn-h3/src/lib.rs b/quinn-h3/src/lib.rs index deb7b42bb..e28ee62b6 100644 --- a/quinn-h3/src/lib.rs +++ b/quinn-h3/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(clippy::identity_op)] + #[macro_use] extern crate lazy_static; diff --git a/quinn-h3/src/proto/frame.rs b/quinn-h3/src/proto/frame.rs index 08ab3dde6..a4c898ece 100644 --- a/quinn-h3/src/proto/frame.rs +++ b/quinn-h3/src/proto/frame.rs @@ -387,7 +387,7 @@ mod tests { #[test] fn buffer_too_short() { - let mut buf = Cursor::new(&[04, 0x4, 0, 255, 128]); + let mut buf = Cursor::new(&[4, 4, 0, 255, 128]); let decoded = HttpFrame::decode(&mut buf); assert_eq!(decoded, Err(Error::Incomplete(6))); } diff --git a/quinn-h3/src/qpack/dynamic.rs b/quinn-h3/src/qpack/dynamic.rs index 6b6e04192..cfb125157 100644 --- a/quinn-h3/src/qpack/dynamic.rs +++ b/quinn-h3/src/qpack/dynamic.rs @@ -854,10 +854,10 @@ mod tests { let field_map = encoder.table.field_map.as_ref().unwrap(); assert_eq!(name_map.len(), 2); assert_eq!(field_map.len(), 2); - assert_eq!(name_map.get(&field_a.name).map(|x| *x), Some(1)); - assert_eq!(name_map.get(&field_b.name).map(|x| *x), Some(2)); - assert_eq!(field_map.get(&field_a).map(|x| *x), Some(1)); - assert_eq!(field_map.get(&field_b).map(|x| *x), Some(2)); + assert_eq!(name_map.get(&field_a.name).copied(), Some(1)); + assert_eq!(name_map.get(&field_b.name).copied(), Some(2)); + assert_eq!(field_map.get(&field_a).copied(), Some(1)); + assert_eq!(field_map.get(&field_b).copied(), Some(2)); } #[test] @@ -963,20 +963,16 @@ mod tests { field_c ] ); - assert_eq!(name_map.get(&field_a.name).map(|x| *x), Some(3)); - assert_eq!(name_map.get(&field_b.name).map(|x| *x), Some(5)); - assert_eq!(field_map.get(&field_a).map(|x| *x), Some(3)); - assert_eq!(field_map.get(&field_b).map(|x| *x), Some(2)); + assert_eq!(name_map.get(&field_a.name).copied(), Some(3)); + assert_eq!(name_map.get(&field_b.name).copied(), Some(5)); + assert_eq!(field_map.get(&field_a).copied(), Some(3)); + assert_eq!(field_map.get(&field_b).copied(), Some(2)); assert_eq!( - field_map - .get(&field_b.with_value("New Value-B")) - .map(|x| *x), + field_map.get(&field_b.with_value("New Value-B")).copied(), Some(4) ); assert_eq!( - field_map - .get(&field_b.with_value("Newer Value-B")) - .map(|x| *x), + field_map.get(&field_b.with_value("Newer Value-B")).copied(), Some(5) ); } @@ -999,8 +995,8 @@ mod tests { let name_map = encoder.table.name_map.as_ref().unwrap(); let field_map = encoder.table.field_map.as_ref().unwrap(); assert_eq!(encoder.table.fields, &[field_a.clone()]); - assert_eq!(name_map.get(&field_a.name).map(|x| *x), Some(1)); - assert_eq!(field_map.get(&field_a).map(|x| *x), Some(1)); + assert_eq!(name_map.get(&field_a.name).copied(), Some(1)); + assert_eq!(field_map.get(&field_a).copied(), Some(1)); } #[test] @@ -1116,16 +1112,10 @@ mod tests { }) ); assert_eq!( - encoder - .table - .track_map - .as_ref() - .unwrap() - .get(&1) - .map(|x| *x), + encoder.table.track_map.as_ref().unwrap().get(&1).copied(), Some(1) ); - assert_eq!(encoder.block_refs.get(&1).map(|x| *x), Some(1)); + assert_eq!(encoder.block_refs.get(&1).copied(), Some(1)); } #[test] diff --git a/quinn-h3/src/qpack/prefix_int.rs b/quinn-h3/src/qpack/prefix_int.rs index fd5048719..c9c553292 100644 --- a/quinn-h3/src/qpack/prefix_int.rs +++ b/quinn-h3/src/qpack/prefix_int.rs @@ -92,10 +92,10 @@ mod test { #[test] fn codec_5_bits() { - check_codec(5, 0b101, 10, &[0b10101010]); - check_codec(5, 0b101, 0, &[0b10100000]); - check_codec(5, 0b010, 1337, &[0b01011111, 154, 10]); - check_codec(5, 0b010, 31, &[0b01011111, 0]); + check_codec(5, 0b101, 10, &[0b1010_1010]); + check_codec(5, 0b101, 0, &[0b1010_0000]); + check_codec(5, 0b010, 1337, &[0b0101_1111, 154, 10]); + check_codec(5, 0b010, 31, &[0b0101_1111, 0]); check_codec( 5, 0b010, @@ -106,8 +106,8 @@ mod test { #[test] fn codec_8_bits() { - check_codec(8, 0, 42, &[0b00101010]); - check_codec(8, 0, 424242, &[255, 179, 240, 25]); + check_codec(8, 0, 42, &[0b0010_1010]); + check_codec(8, 0, 424_242, &[255, 179, 240, 25]); check_codec( 8, 0, diff --git a/quinn-h3/src/qpack/prefix_string/decode.rs b/quinn-h3/src/qpack/prefix_string/decode.rs index db092ddec..424bf755b 100644 --- a/quinn-h3/src/qpack/prefix_string/decode.rs +++ b/quinn-h3/src/qpack/prefix_string/decode.rs @@ -320,265 +320,266 @@ mod tests { * Appendix B. Huffman Code */ #[test] + #[allow(clippy::cognitive_complexity)] fn test_decode_single_value() { decoding![ - 48 => (0b00000 << 3) | /* padding */ 0b111; // '0' - 49 => (0b00001 << 3) | /* padding */ 0b111; // '1' - 50 => (0b00010 << 3) | /* padding */ 0b111; // '2' - 97 => (0b00011 << 3) | /* padding */ 0b111; // 'a' - 99 => (0b00100 << 3) | /* padding */ 0b111; // 'c' - 101 => (0b00101 << 3) | /* padding */ 0b111; // 'e' - 105 => (0b00110 << 3) | /* padding */ 0b111; // 'i' - 111 => (0b00111 << 3) | /* padding */ 0b111; // 'o' - 115 => (0b01000 << 3) | /* padding */ 0b111; // 's' - 116 => (0b01001 << 3) | /* padding */ 0b111; // 't' - 32 => (0b010100 << 2) | /* padding */ 0b11; - 37 => (0b010101 << 2) | /* padding */ 0b11; // '%' - 45 => (0b010110 << 2) | /* padding */ 0b11; // '-' - 46 => (0b010111 << 2) | /* padding */ 0b11; // '.' - 47 => (0b011000 << 2) | /* padding */ 0b11; // '/' - 51 => (0b011001 << 2) | /* padding */ 0b11; // '3' - 52 => (0b011010 << 2) | /* padding */ 0b11; // '4' - 53 => (0b011011 << 2) | /* padding */ 0b11; // '5' - 54 => (0b011100 << 2) | /* padding */ 0b11; // '6' - 55 => (0b011101 << 2) | /* padding */ 0b11; // '7' - 56 => (0b011110 << 2) | /* padding */ 0b11; // '8' - 57 => (0b011111 << 2) | /* padding */ 0b11; // '9' - 61 => (0b100000 << 2) | /* padding */ 0b11; // '=' - 65 => (0b100001 << 2) | /* padding */ 0b11; // 'A' - 95 => (0b100010 << 2) | /* padding */ 0b11; // '_' - 98 => (0b100011 << 2) | /* padding */ 0b11; // 'b' - 100 => (0b100100 << 2) | /* padding */ 0b11; // 'd' - 102 => (0b100101 << 2) | /* padding */ 0b11; // 'f' - 103 => (0b100110 << 2) | /* padding */ 0b11; // 'g' - 104 => (0b100111 << 2) | /* padding */ 0b11; // 'h' - 108 => (0b101000 << 2) | /* padding */ 0b11; // 'l' - 109 => (0b101001 << 2) | /* padding */ 0b11; // 'm' - 110 => (0b101010 << 2) | /* padding */ 0b11; // 'n' - 112 => (0b101011 << 2) | /* padding */ 0b11; // 'p' - 114 => (0b101100 << 2) | /* padding */ 0b11; // 'r' - 117 => (0b101101 << 2) | /* padding */ 0b11; // 'u' - 58 => (0b1011100 << 1) | /* padding */ 0b1; // ':' - 66 => (0b1011101 << 1) | /* padding */ 0b1; // 'B' - 67 => (0b1011110 << 1) | /* padding */ 0b1; // 'C' - 68 => (0b1011111 << 1) | /* padding */ 0b1; // 'D' - 69 => (0b1100000 << 1) | /* padding */ 0b1; // 'E' - 70 => (0b1100001 << 1) | /* padding */ 0b1; // 'F' - 71 => (0b1100010 << 1) | /* padding */ 0b1; // 'G' - 72 => (0b1100011 << 1) | /* padding */ 0b1; // 'H' - 73 => (0b1100100 << 1) | /* padding */ 0b1; // 'I' - 74 => (0b1100101 << 1) | /* padding */ 0b1; // 'J' - 75 => (0b1100110 << 1) | /* padding */ 0b1; // 'K' - 76 => (0b1100111 << 1) | /* padding */ 0b1; // 'L' - 77 => (0b1101000 << 1) | /* padding */ 0b1; // 'M' - 78 => (0b1101001 << 1) | /* padding */ 0b1; // 'N' - 79 => (0b1101010 << 1) | /* padding */ 0b1; // 'O' - 80 => (0b1101011 << 1) | /* padding */ 0b1; // 'P' - 81 => (0b1101100 << 1) | /* padding */ 0b1; // 'Q' - 82 => (0b1101101 << 1) | /* padding */ 0b1; // 'R' - 83 => (0b1101110 << 1) | /* padding */ 0b1; // 'S' - 84 => (0b1101111 << 1) | /* padding */ 0b1; // 'T' - 85 => (0b1110000 << 1) | /* padding */ 0b1; // 'U' - 86 => (0b1110001 << 1) | /* padding */ 0b1; // 'V' - 87 => (0b1110010 << 1) | /* padding */ 0b1; // 'W' - 89 => (0b1110011 << 1) | /* padding */ 0b1; // 'Y' - 106 => (0b1110100 << 1) | /* padding */ 0b1; // 'j' - 107 => (0b1110101 << 1) | /* padding */ 0b1; // 'k' - 113 => (0b1110110 << 1) | /* padding */ 0b1; // 'q' - 118 => (0b1110111 << 1) | /* padding */ 0b1; // 'v' - 119 => (0b1111000 << 1) | /* padding */ 0b1; // 'w' - 120 => (0b1111001 << 1) | /* padding */ 0b1; // 'x' - 121 => (0b1111010 << 1) | /* padding */ 0b1; // 'y' - 122 => (0b1111011 << 1) | /* padding */ 0b1; // 'z' - 38 => 0b11111000, /* padding */ 0b11111111; // '&' - 42 => 0b11111001, /* padding */ 0b11111111; // '*' - 44 => 0b11111010, /* padding */ 0b11111111; // ',' - 59 => 0b11111011, /* padding */ 0b11111111; - 88 => 0b11111100, /* padding */ 0b11111111; // 'X' - 90 => 0b11111101, /* padding */ 0b11111111; // 'Z' - 33 => 0b11111110, (0b00 << 6) | /* padding */ 0b111111; // '!' - 34 => 0b11111110, (0b01 << 6) | /* padding */ 0b111111; // '"' - 40 => 0b11111110, (0b10 << 6) | /* padding */ 0b111111; // '(' - 41 => 0b11111110, (0b11 << 6) | /* padding */ 0b111111; // ')' - 63 => 0b11111111, (0b00 << 6) | /* padding */ 0b111111; // '?' - 39 => 0b11111111, (0b010 << 5) | /* padding */ 0b11111; // ''' - 43 => 0b11111111, (0b011 << 5) | /* padding */ 0b11111; // '+' - 124 => 0b11111111, (0b100 << 5) | /* padding */ 0b11111; // '|' - 35 => 0b11111111, (0b1010 << 4) | /* padding */ 0b1111; // '#' - 62 => 0b11111111, (0b1011 << 4) | /* padding */ 0b1111; // '>' - 0 => 0b11111111, (0b11000 << 3) | /* padding */ 0b111; - 36 => 0b11111111, (0b11001 << 3) | /* padding */ 0b111; // '$' - 64 => 0b11111111, (0b11010 << 3) | /* padding */ 0b111; // '@' - 91 => 0b11111111, (0b11011 << 3) | /* padding */ 0b111; // '[' - 93 => 0b11111111, (0b11100 << 3) | /* padding */ 0b111; // ']' - 126 => 0b11111111, (0b11101 << 3) | /* padding */ 0b111; // '~' - 94 => 0b11111111, (0b111100 << 2) | /* padding */ 0b11; // '^' - 125 => 0b11111111, (0b111101 << 2) | /* padding */ 0b11; // '}' - 60 => 0b11111111, (0b1111100 << 1) | /* padding */ 0b1; // '<' - 96 => 0b11111111, (0b1111101 << 1) | /* padding */ 0b1; // '`' - 123 => 0b11111111, (0b1111110 << 1) | /* padding */ 0b1; // '{' - 92 => 0b11111111, 0b11111110, (0b000 << 5) | /* padding */ 0b11111; // '\' - 195 => 0b11111111, 0b11111110, (0b001 << 5) | /* padding */ 0b11111; - 208 => 0b11111111, 0b11111110, (0b010 << 5) | /* padding */ 0b11111; - 128 => 0b11111111, 0b11111110, (0b0110 << 4) | /* padding */ 0b1111; - 130 => 0b11111111, 0b11111110, (0b0111 << 4) | /* padding */ 0b1111; - 131 => 0b11111111, 0b11111110, (0b1000 << 4) | /* padding */ 0b1111; - 162 => 0b11111111, 0b11111110, (0b1001 << 4) | /* padding */ 0b1111; - 184 => 0b11111111, 0b11111110, (0b1010 << 4) | /* padding */ 0b1111; - 194 => 0b11111111, 0b11111110, (0b1011 << 4) | /* padding */ 0b1111; - 224 => 0b11111111, 0b11111110, (0b1100 << 4) | /* padding */ 0b1111; - 226 => 0b11111111, 0b11111110, (0b1101 << 4) | /* padding */ 0b1111; - 153 => 0b11111111, 0b11111110, (0b11100 << 3) | /* padding */ 0b111; - 161 => 0b11111111, 0b11111110, (0b11101 << 3) | /* padding */ 0b111; - 167 => 0b11111111, 0b11111110, (0b11110 << 3) | /* padding */ 0b111; - 172 => 0b11111111, 0b11111110, (0b11111 << 3) | /* padding */ 0b111; - 176 => 0b11111111, 0b11111111, (0b00000 << 3) | /* padding */ 0b111; - 177 => 0b11111111, 0b11111111, (0b00001 << 3) | /* padding */ 0b111; - 179 => 0b11111111, 0b11111111, (0b00010 << 3) | /* padding */ 0b111; - 209 => 0b11111111, 0b11111111, (0b00011 << 3) | /* padding */ 0b111; - 216 => 0b11111111, 0b11111111, (0b00100 << 3) | /* padding */ 0b111; - 217 => 0b11111111, 0b11111111, (0b00101 << 3) | /* padding */ 0b111; - 227 => 0b11111111, 0b11111111, (0b00110 << 3) | /* padding */ 0b111; - 229 => 0b11111111, 0b11111111, (0b00111 << 3) | /* padding */ 0b111; - 230 => 0b11111111, 0b11111111, (0b01000 << 3) | /* padding */ 0b111; - 129 => 0b11111111, 0b11111111, (0b010010 << 2) | /* padding */ 0b11; - 132 => 0b11111111, 0b11111111, (0b010011 << 2) | /* padding */ 0b11; - 133 => 0b11111111, 0b11111111, (0b010100 << 2) | /* padding */ 0b11; - 134 => 0b11111111, 0b11111111, (0b010101 << 2) | /* padding */ 0b11; - 136 => 0b11111111, 0b11111111, (0b010110 << 2) | /* padding */ 0b11; - 146 => 0b11111111, 0b11111111, (0b010111 << 2) | /* padding */ 0b11; - 154 => 0b11111111, 0b11111111, (0b011000 << 2) | /* padding */ 0b11; - 156 => 0b11111111, 0b11111111, (0b011001 << 2) | /* padding */ 0b11; - 160 => 0b11111111, 0b11111111, (0b011010 << 2) | /* padding */ 0b11; - 163 => 0b11111111, 0b11111111, (0b011011 << 2) | /* padding */ 0b11; - 164 => 0b11111111, 0b11111111, (0b011100 << 2) | /* padding */ 0b11; - 169 => 0b11111111, 0b11111111, (0b011101 << 2) | /* padding */ 0b11; - 170 => 0b11111111, 0b11111111, (0b011110 << 2) | /* padding */ 0b11; - 173 => 0b11111111, 0b11111111, (0b011111 << 2) | /* padding */ 0b11; - 178 => 0b11111111, 0b11111111, (0b100000 << 2) | /* padding */ 0b11; - 181 => 0b11111111, 0b11111111, (0b100001 << 2) | /* padding */ 0b11; - 185 => 0b11111111, 0b11111111, (0b100010 << 2) | /* padding */ 0b11; - 186 => 0b11111111, 0b11111111, (0b100011 << 2) | /* padding */ 0b11; - 187 => 0b11111111, 0b11111111, (0b100100 << 2) | /* padding */ 0b11; - 189 => 0b11111111, 0b11111111, (0b100101 << 2) | /* padding */ 0b11; - 190 => 0b11111111, 0b11111111, (0b100110 << 2) | /* padding */ 0b11; - 196 => 0b11111111, 0b11111111, (0b100111 << 2) | /* padding */ 0b11; - 198 => 0b11111111, 0b11111111, (0b101000 << 2) | /* padding */ 0b11; - 228 => 0b11111111, 0b11111111, (0b101001 << 2) | /* padding */ 0b11; - 232 => 0b11111111, 0b11111111, (0b101010 << 2) | /* padding */ 0b11; - 233 => 0b11111111, 0b11111111, (0b101011 << 2) | /* padding */ 0b11; - 1 => 0b11111111, 0b11111111, (0b1011000 << 1) | /* padding */ 0b1; - 135 => 0b11111111, 0b11111111, (0b1011001 << 1) | /* padding */ 0b1; - 137 => 0b11111111, 0b11111111, (0b1011010 << 1) | /* padding */ 0b1; - 138 => 0b11111111, 0b11111111, (0b1011011 << 1) | /* padding */ 0b1; - 139 => 0b11111111, 0b11111111, (0b1011100 << 1) | /* padding */ 0b1; - 140 => 0b11111111, 0b11111111, (0b1011101 << 1) | /* padding */ 0b1; - 141 => 0b11111111, 0b11111111, (0b1011110 << 1) | /* padding */ 0b1; - 143 => 0b11111111, 0b11111111, (0b1011111 << 1) | /* padding */ 0b1; - 147 => 0b11111111, 0b11111111, (0b1100000 << 1) | /* padding */ 0b1; - 149 => 0b11111111, 0b11111111, (0b1100001 << 1) | /* padding */ 0b1; - 150 => 0b11111111, 0b11111111, (0b1100010 << 1) | /* padding */ 0b1; - 151 => 0b11111111, 0b11111111, (0b1100011 << 1) | /* padding */ 0b1; - 152 => 0b11111111, 0b11111111, (0b1100100 << 1) | /* padding */ 0b1; - 155 => 0b11111111, 0b11111111, (0b1100101 << 1) | /* padding */ 0b1; - 157 => 0b11111111, 0b11111111, (0b1100110 << 1) | /* padding */ 0b1; - 158 => 0b11111111, 0b11111111, (0b1100111 << 1) | /* padding */ 0b1; - 165 => 0b11111111, 0b11111111, (0b1101000 << 1) | /* padding */ 0b1; - 166 => 0b11111111, 0b11111111, (0b1101001 << 1) | /* padding */ 0b1; - 168 => 0b11111111, 0b11111111, (0b1101010 << 1) | /* padding */ 0b1; - 174 => 0b11111111, 0b11111111, (0b1101011 << 1) | /* padding */ 0b1; - 175 => 0b11111111, 0b11111111, (0b1101100 << 1) | /* padding */ 0b1; - 180 => 0b11111111, 0b11111111, (0b1101101 << 1) | /* padding */ 0b1; - 182 => 0b11111111, 0b11111111, (0b1101110 << 1) | /* padding */ 0b1; - 183 => 0b11111111, 0b11111111, (0b1101111 << 1) | /* padding */ 0b1; - 188 => 0b11111111, 0b11111111, (0b1110000 << 1) | /* padding */ 0b1; - 191 => 0b11111111, 0b11111111, (0b1110001 << 1) | /* padding */ 0b1; - 197 => 0b11111111, 0b11111111, (0b1110010 << 1) | /* padding */ 0b1; - 231 => 0b11111111, 0b11111111, (0b1110011 << 1) | /* padding */ 0b1; - 239 => 0b11111111, 0b11111111, (0b1110100 << 1) | /* padding */ 0b1; - 9 => 0b11111111, 0b11111111, 0b11101010, /* padding */ 0b11111111; - 142 => 0b11111111, 0b11111111, 0b11101011, /* padding */ 0b11111111; - 144 => 0b11111111, 0b11111111, 0b11101100, /* padding */ 0b11111111; - 145 => 0b11111111, 0b11111111, 0b11101101, /* padding */ 0b11111111; - 148 => 0b11111111, 0b11111111, 0b11101110, /* padding */ 0b11111111; - 159 => 0b11111111, 0b11111111, 0b11101111, /* padding */ 0b11111111; - 171 => 0b11111111, 0b11111111, 0b11110000, /* padding */ 0b11111111; - 206 => 0b11111111, 0b11111111, 0b11110001, /* padding */ 0b11111111; - 215 => 0b11111111, 0b11111111, 0b11110010, /* padding */ 0b11111111; - 225 => 0b11111111, 0b11111111, 0b11110011, /* padding */ 0b11111111; - 236 => 0b11111111, 0b11111111, 0b11110100, /* padding */ 0b11111111; - 237 => 0b11111111, 0b11111111, 0b11110101, /* padding */ 0b11111111; - 199 => 0b11111111, 0b11111111, 0b11110110, (0b0 << 7) | /* padding */ 0b1111111; - 207 => 0b11111111, 0b11111111, 0b11110110, (0b1 << 7) | /* padding */ 0b1111111; - 234 => 0b11111111, 0b11111111, 0b11110111, (0b0 << 7) | /* padding */ 0b1111111; - 235 => 0b11111111, 0b11111111, 0b11110111, (0b1 << 7) | /* padding */ 0b1111111; - 192 => 0b11111111, 0b11111111, 0b11111000, (0b00 << 6) | /* padding */ 0b111111; - 193 => 0b11111111, 0b11111111, 0b11111000, (0b01 << 6) | /* padding */ 0b111111; - 200 => 0b11111111, 0b11111111, 0b11111000, (0b10 << 6) | /* padding */ 0b111111; - 201 => 0b11111111, 0b11111111, 0b11111000, (0b11 << 6) | /* padding */ 0b111111; - 202 => 0b11111111, 0b11111111, 0b11111001, (0b00 << 6) | /* padding */ 0b111111; - 205 => 0b11111111, 0b11111111, 0b11111001, (0b01 << 6) | /* padding */ 0b111111; - 210 => 0b11111111, 0b11111111, 0b11111001, (0b10 << 6) | /* padding */ 0b111111; - 213 => 0b11111111, 0b11111111, 0b11111001, (0b11 << 6) | /* padding */ 0b111111; - 218 => 0b11111111, 0b11111111, 0b11111010, (0b00 << 6) | /* padding */ 0b111111; - 219 => 0b11111111, 0b11111111, 0b11111010, (0b01 << 6) | /* padding */ 0b111111; - 238 => 0b11111111, 0b11111111, 0b11111010, (0b10 << 6) | /* padding */ 0b111111; - 240 => 0b11111111, 0b11111111, 0b11111010, (0b11 << 6) | /* padding */ 0b111111; - 242 => 0b11111111, 0b11111111, 0b11111011, (0b00 << 6) | /* padding */ 0b111111; - 243 => 0b11111111, 0b11111111, 0b11111011, (0b01 << 6) | /* padding */ 0b111111; - 255 => 0b11111111, 0b11111111, 0b11111011, (0b10 << 6) | /* padding */ 0b111111; - 203 => 0b11111111, 0b11111111, 0b11111011, (0b110 << 5) | /* padding */ 0b11111; - 204 => 0b11111111, 0b11111111, 0b11111011, (0b111 << 5) | /* padding */ 0b11111; - 211 => 0b11111111, 0b11111111, 0b11111100, (0b000 << 5) | /* padding */ 0b11111; - 212 => 0b11111111, 0b11111111, 0b11111100, (0b001 << 5) | /* padding */ 0b11111; - 214 => 0b11111111, 0b11111111, 0b11111100, (0b010 << 5) | /* padding */ 0b11111; - 221 => 0b11111111, 0b11111111, 0b11111100, (0b011 << 5) | /* padding */ 0b11111; - 222 => 0b11111111, 0b11111111, 0b11111100, (0b100 << 5) | /* padding */ 0b11111; - 223 => 0b11111111, 0b11111111, 0b11111100, (0b101 << 5) | /* padding */ 0b11111; - 241 => 0b11111111, 0b11111111, 0b11111100, (0b110 << 5) | /* padding */ 0b11111; - 244 => 0b11111111, 0b11111111, 0b11111100, (0b111 << 5) | /* padding */ 0b11111; - 245 => 0b11111111, 0b11111111, 0b11111101, (0b000 << 5) | /* padding */ 0b11111; - 246 => 0b11111111, 0b11111111, 0b11111101, (0b001 << 5) | /* padding */ 0b11111; - 247 => 0b11111111, 0b11111111, 0b11111101, (0b010 << 5) | /* padding */ 0b11111; - 248 => 0b11111111, 0b11111111, 0b11111101, (0b011 << 5) | /* padding */ 0b11111; - 250 => 0b11111111, 0b11111111, 0b11111101, (0b100 << 5) | /* padding */ 0b11111; - 251 => 0b11111111, 0b11111111, 0b11111101, (0b101 << 5) | /* padding */ 0b11111; - 252 => 0b11111111, 0b11111111, 0b11111101, (0b110 << 5) | /* padding */ 0b11111; - 253 => 0b11111111, 0b11111111, 0b11111101, (0b111 << 5) | /* padding */ 0b11111; - 254 => 0b11111111, 0b11111111, 0b11111110, (0b000 << 5) | /* padding */ 0b11111; - 2 => 0b11111111, 0b11111111, 0b11111110, (0b0010 << 4) | /* padding */ 0b1111; - 3 => 0b11111111, 0b11111111, 0b11111110, (0b0011 << 4) | /* padding */ 0b1111; - 4 => 0b11111111, 0b11111111, 0b11111110, (0b0100 << 4) | /* padding */ 0b1111; - 5 => 0b11111111, 0b11111111, 0b11111110, (0b0101 << 4) | /* padding */ 0b1111; - 6 => 0b11111111, 0b11111111, 0b11111110, (0b0110 << 4) | /* padding */ 0b1111; - 7 => 0b11111111, 0b11111111, 0b11111110, (0b0111 << 4) | /* padding */ 0b1111; - 8 => 0b11111111, 0b11111111, 0b11111110, (0b1000 << 4) | /* padding */ 0b1111; - 11 => 0b11111111, 0b11111111, 0b11111110, (0b1001 << 4) | /* padding */ 0b1111; - 12 => 0b11111111, 0b11111111, 0b11111110, (0b1010 << 4) | /* padding */ 0b1111; - 14 => 0b11111111, 0b11111111, 0b11111110, (0b1011 << 4) | /* padding */ 0b1111; - 15 => 0b11111111, 0b11111111, 0b11111110, (0b1100 << 4) | /* padding */ 0b1111; - 16 => 0b11111111, 0b11111111, 0b11111110, (0b1101 << 4) | /* padding */ 0b1111; - 17 => 0b11111111, 0b11111111, 0b11111110, (0b1110 << 4) | /* padding */ 0b1111; - 18 => 0b11111111, 0b11111111, 0b11111110, (0b1111 << 4) | /* padding */ 0b1111; - 19 => 0b11111111, 0b11111111, 0b11111111, (0b0000 << 4) | /* padding */ 0b1111; - 20 => 0b11111111, 0b11111111, 0b11111111, (0b0001 << 4) | /* padding */ 0b1111; - 21 => 0b11111111, 0b11111111, 0b11111111, (0b0010 << 4) | /* padding */ 0b1111; - 23 => 0b11111111, 0b11111111, 0b11111111, (0b0011 << 4) | /* padding */ 0b1111; - 24 => 0b11111111, 0b11111111, 0b11111111, (0b0100 << 4) | /* padding */ 0b1111; - 25 => 0b11111111, 0b11111111, 0b11111111, (0b0101 << 4) | /* padding */ 0b1111; - 26 => 0b11111111, 0b11111111, 0b11111111, (0b0110 << 4) | /* padding */ 0b1111; - 27 => 0b11111111, 0b11111111, 0b11111111, (0b0111 << 4) | /* padding */ 0b1111; - 28 => 0b11111111, 0b11111111, 0b11111111, (0b1000 << 4) | /* padding */ 0b1111; - 29 => 0b11111111, 0b11111111, 0b11111111, (0b1001 << 4) | /* padding */ 0b1111; - 30 => 0b11111111, 0b11111111, 0b11111111, (0b1010 << 4) | /* padding */ 0b1111; - 31 => 0b11111111, 0b11111111, 0b11111111, (0b1011 << 4) | /* padding */ 0b1111; - 127 => 0b11111111, 0b11111111, 0b11111111, (0b1100 << 4) | /* padding */ 0b1111; - 220 => 0b11111111, 0b11111111, 0b11111111, (0b1101 << 4) | /* padding */ 0b1111; - 249 => 0b11111111, 0b11111111, 0b11111111, (0b1110 << 4) | /* padding */ 0b1111; - 10 => 0b11111111, 0b11111111, 0b11111111, (0b111100 << 2) | /* padding */ 0b11; - 13 => 0b11111111, 0b11111111, 0b11111111, (0b111101 << 2) | /* padding */ 0b11; - 22 => 0b11111111, 0b11111111, 0b11111111, (0b111110 << 2) | /* padding */ 0b11; - // 256 => 0b11111111, 0b11111111, 0b11111111, (0b111111 << 2) | /* padding */ 0b11; + 48 => (0b0_0000 << 3) | /* padding */ 0b111; // '0' + 49 => (0b0_0001 << 3) | /* padding */ 0b111; // '1' + 50 => (0b0_0010 << 3) | /* padding */ 0b111; // '2' + 97 => (0b0_0011 << 3) | /* padding */ 0b111; // 'a' + 99 => (0b0_0100 << 3) | /* padding */ 0b111; // 'c' + 101 => (0b0_0101 << 3) | /* padding */ 0b111; // 'e' + 105 => (0b0_0110 << 3) | /* padding */ 0b111; // 'i' + 111 => (0b0_0111 << 3) | /* padding */ 0b111; // 'o' + 115 => (0b0_1000 << 3) | /* padding */ 0b111; // 's' + 116 => (0b0_1001 << 3) | /* padding */ 0b111; // 't' + 32 => (0b01_0100 << 2) | /* padding */ 0b11; + 37 => (0b01_0101 << 2) | /* padding */ 0b11; // '%' + 45 => (0b01_0110 << 2) | /* padding */ 0b11; // '-' + 46 => (0b01_0111 << 2) | /* padding */ 0b11; // '.' + 47 => (0b01_1000 << 2) | /* padding */ 0b11; // '/' + 51 => (0b01_1001 << 2) | /* padding */ 0b11; // '3' + 52 => (0b01_1010 << 2) | /* padding */ 0b11; // '4' + 53 => (0b01_1011 << 2) | /* padding */ 0b11; // '5' + 54 => (0b01_1100 << 2) | /* padding */ 0b11; // '6' + 55 => (0b01_1101 << 2) | /* padding */ 0b11; // '7' + 56 => (0b01_1110 << 2) | /* padding */ 0b11; // '8' + 57 => (0b01_1111 << 2) | /* padding */ 0b11; // '9' + 61 => (0b10_0000 << 2) | /* padding */ 0b11; // '=' + 65 => (0b10_0001 << 2) | /* padding */ 0b11; // 'A' + 95 => (0b10_0010 << 2) | /* padding */ 0b11; // '_' + 98 => (0b10_0011 << 2) | /* padding */ 0b11; // 'b' + 100 => (0b10_0100 << 2) | /* padding */ 0b11; // 'd' + 102 => (0b10_0101 << 2) | /* padding */ 0b11; // 'f' + 103 => (0b10_0110 << 2) | /* padding */ 0b11; // 'g' + 104 => (0b10_0111 << 2) | /* padding */ 0b11; // 'h' + 108 => (0b10_1000 << 2) | /* padding */ 0b11; // 'l' + 109 => (0b10_1001 << 2) | /* padding */ 0b11; // 'm' + 110 => (0b10_1010 << 2) | /* padding */ 0b11; // 'n' + 112 => (0b10_1011 << 2) | /* padding */ 0b11; // 'p' + 114 => (0b10_1100 << 2) | /* padding */ 0b11; // 'r' + 117 => (0b10_1101 << 2) | /* padding */ 0b11; // 'u' + 58 => (0b101_1100 << 1) | /* padding */ 0b1; // ':' + 66 => (0b101_1101 << 1) | /* padding */ 0b1; // 'B' + 67 => (0b101_1110 << 1) | /* padding */ 0b1; // 'C' + 68 => (0b101_1111 << 1) | /* padding */ 0b1; // 'D' + 69 => (0b110_0000 << 1) | /* padding */ 0b1; // 'E' + 70 => (0b110_0001 << 1) | /* padding */ 0b1; // 'F' + 71 => (0b110_0010 << 1) | /* padding */ 0b1; // 'G' + 72 => (0b110_0011 << 1) | /* padding */ 0b1; // 'H' + 73 => (0b110_0100 << 1) | /* padding */ 0b1; // 'I' + 74 => (0b110_0101 << 1) | /* padding */ 0b1; // 'J' + 75 => (0b110_0110 << 1) | /* padding */ 0b1; // 'K' + 76 => (0b110_0111 << 1) | /* padding */ 0b1; // 'L' + 77 => (0b110_1000 << 1) | /* padding */ 0b1; // 'M' + 78 => (0b110_1001 << 1) | /* padding */ 0b1; // 'N' + 79 => (0b110_1010 << 1) | /* padding */ 0b1; // 'O' + 80 => (0b110_1011 << 1) | /* padding */ 0b1; // 'P' + 81 => (0b110_1100 << 1) | /* padding */ 0b1; // 'Q' + 82 => (0b110_1101 << 1) | /* padding */ 0b1; // 'R' + 83 => (0b110_1110 << 1) | /* padding */ 0b1; // 'S' + 84 => (0b110_1111 << 1) | /* padding */ 0b1; // 'T' + 85 => (0b111_0000 << 1) | /* padding */ 0b1; // 'U' + 86 => (0b111_0001 << 1) | /* padding */ 0b1; // 'V' + 87 => (0b111_0010 << 1) | /* padding */ 0b1; // 'W' + 89 => (0b111_0011 << 1) | /* padding */ 0b1; // 'Y' + 106 => (0b111_0100 << 1) | /* padding */ 0b1; // 'j' + 107 => (0b111_0101 << 1) | /* padding */ 0b1; // 'k' + 113 => (0b111_0110 << 1) | /* padding */ 0b1; // 'q' + 118 => (0b111_0111 << 1) | /* padding */ 0b1; // 'v' + 119 => (0b111_1000 << 1) | /* padding */ 0b1; // 'w' + 120 => (0b111_1001 << 1) | /* padding */ 0b1; // 'x' + 121 => (0b111_1010 << 1) | /* padding */ 0b1; // 'y' + 122 => (0b111_1011 << 1) | /* padding */ 0b1; // 'z' + 38 => 0b1111_1000, /* padding */ 0b1111_1111; // '&' + 42 => 0b1111_1001, /* padding */ 0b1111_1111; // '*' + 44 => 0b1111_1010, /* padding */ 0b1111_1111; // ',' + 59 => 0b1111_1011, /* padding */ 0b1111_1111; + 88 => 0b1111_1100, /* padding */ 0b1111_1111; // 'X' + 90 => 0b1111_1101, /* padding */ 0b1111_1111; // 'Z' + 33 => 0b1111_1110, (0b00 << 6) | /* padding */ 0b11_1111; // '!' + 34 => 0b1111_1110, (0b01 << 6) | /* padding */ 0b11_1111; // '"' + 40 => 0b1111_1110, (0b10 << 6) | /* padding */ 0b11_1111; // '(' + 41 => 0b1111_1110, (0b11 << 6) | /* padding */ 0b11_1111; // ')' + 63 => 0b1111_1111, (0b00 << 6) | /* padding */ 0b11_1111; // '?' + 39 => 0b1111_1111, (0b010 << 5) | /* padding */ 0b11111; // ''' + 43 => 0b1111_1111, (0b011 << 5) | /* padding */ 0b11111; // '+' + 124 => 0b1111_1111, (0b100 << 5) | /* padding */ 0b11111; // '|' + 35 => 0b1111_1111, (0b1010 << 4) | /* padding */ 0b1111; // '#' + 62 => 0b1111_1111, (0b1011 << 4) | /* padding */ 0b1111; // '>' + 0 => 0b1111_1111, (0b11000 << 3) | /* padding */ 0b111; + 36 => 0b1111_1111, (0b11001 << 3) | /* padding */ 0b111; // '$' + 64 => 0b1111_1111, (0b11010 << 3) | /* padding */ 0b111; // '@' + 91 => 0b1111_1111, (0b11011 << 3) | /* padding */ 0b111; // '[' + 93 => 0b1111_1111, (0b11100 << 3) | /* padding */ 0b111; // ']' + 126 => 0b1111_1111, (0b11101 << 3) | /* padding */ 0b111; // '~' + 94 => 0b1111_1111, (0b11_1100 << 2) | /* padding */ 0b11; // '^' + 125 => 0b1111_1111, (0b11_1101 << 2) | /* padding */ 0b11; // '}' + 60 => 0b1111_1111, (0b111_1100 << 1) | /* padding */ 0b1; // '<' + 96 => 0b1111_1111, (0b111_1101 << 1) | /* padding */ 0b1; // '`' + 123 => 0b1111_1111, (0b111_1110 << 1) | /* padding */ 0b1; // '{' + 92 => 0b1111_1111, 0b1111_1110, (0b000 << 5) | /* padding */ 0b11111; // '\' + 195 => 0b1111_1111, 0b1111_1110, (0b001 << 5) | /* padding */ 0b11111; + 208 => 0b1111_1111, 0b1111_1110, (0b010 << 5) | /* padding */ 0b11111; + 128 => 0b1111_1111, 0b1111_1110, (0b0110 << 4) | /* padding */ 0b1111; + 130 => 0b1111_1111, 0b1111_1110, (0b0111 << 4) | /* padding */ 0b1111; + 131 => 0b1111_1111, 0b1111_1110, (0b1000 << 4) | /* padding */ 0b1111; + 162 => 0b1111_1111, 0b1111_1110, (0b1001 << 4) | /* padding */ 0b1111; + 184 => 0b1111_1111, 0b1111_1110, (0b1010 << 4) | /* padding */ 0b1111; + 194 => 0b1111_1111, 0b1111_1110, (0b1011 << 4) | /* padding */ 0b1111; + 224 => 0b1111_1111, 0b1111_1110, (0b1100 << 4) | /* padding */ 0b1111; + 226 => 0b1111_1111, 0b1111_1110, (0b1101 << 4) | /* padding */ 0b1111; + 153 => 0b1111_1111, 0b1111_1110, (0b11100 << 3) | /* padding */ 0b111; + 161 => 0b1111_1111, 0b1111_1110, (0b11101 << 3) | /* padding */ 0b111; + 167 => 0b1111_1111, 0b1111_1110, (0b11110 << 3) | /* padding */ 0b111; + 172 => 0b1111_1111, 0b1111_1110, (0b11111 << 3) | /* padding */ 0b111; + 176 => 0b1111_1111, 0b1111_1111, (0b00000 << 3) | /* padding */ 0b111; + 177 => 0b1111_1111, 0b1111_1111, (0b00001 << 3) | /* padding */ 0b111; + 179 => 0b1111_1111, 0b1111_1111, (0b00010 << 3) | /* padding */ 0b111; + 209 => 0b1111_1111, 0b1111_1111, (0b00011 << 3) | /* padding */ 0b111; + 216 => 0b1111_1111, 0b1111_1111, (0b00100 << 3) | /* padding */ 0b111; + 217 => 0b1111_1111, 0b1111_1111, (0b00101 << 3) | /* padding */ 0b111; + 227 => 0b1111_1111, 0b1111_1111, (0b00110 << 3) | /* padding */ 0b111; + 229 => 0b1111_1111, 0b1111_1111, (0b00111 << 3) | /* padding */ 0b111; + 230 => 0b1111_1111, 0b1111_1111, (0b01000 << 3) | /* padding */ 0b111; + 129 => 0b1111_1111, 0b1111_1111, (0b01_0010 << 2) | /* padding */ 0b11; + 132 => 0b1111_1111, 0b1111_1111, (0b01_0011 << 2) | /* padding */ 0b11; + 133 => 0b1111_1111, 0b1111_1111, (0b01_0100 << 2) | /* padding */ 0b11; + 134 => 0b1111_1111, 0b1111_1111, (0b01_0101 << 2) | /* padding */ 0b11; + 136 => 0b1111_1111, 0b1111_1111, (0b01_0110 << 2) | /* padding */ 0b11; + 146 => 0b1111_1111, 0b1111_1111, (0b01_0111 << 2) | /* padding */ 0b11; + 154 => 0b1111_1111, 0b1111_1111, (0b01_1000 << 2) | /* padding */ 0b11; + 156 => 0b1111_1111, 0b1111_1111, (0b01_1001 << 2) | /* padding */ 0b11; + 160 => 0b1111_1111, 0b1111_1111, (0b01_1010 << 2) | /* padding */ 0b11; + 163 => 0b1111_1111, 0b1111_1111, (0b01_1011 << 2) | /* padding */ 0b11; + 164 => 0b1111_1111, 0b1111_1111, (0b01_1100 << 2) | /* padding */ 0b11; + 169 => 0b1111_1111, 0b1111_1111, (0b01_1101 << 2) | /* padding */ 0b11; + 170 => 0b1111_1111, 0b1111_1111, (0b01_1110 << 2) | /* padding */ 0b11; + 173 => 0b1111_1111, 0b1111_1111, (0b01_1111 << 2) | /* padding */ 0b11; + 178 => 0b1111_1111, 0b1111_1111, (0b10_0000 << 2) | /* padding */ 0b11; + 181 => 0b1111_1111, 0b1111_1111, (0b10_0001 << 2) | /* padding */ 0b11; + 185 => 0b1111_1111, 0b1111_1111, (0b10_0010 << 2) | /* padding */ 0b11; + 186 => 0b1111_1111, 0b1111_1111, (0b10_0011 << 2) | /* padding */ 0b11; + 187 => 0b1111_1111, 0b1111_1111, (0b10_0100 << 2) | /* padding */ 0b11; + 189 => 0b1111_1111, 0b1111_1111, (0b10_0101 << 2) | /* padding */ 0b11; + 190 => 0b1111_1111, 0b1111_1111, (0b10_0110 << 2) | /* padding */ 0b11; + 196 => 0b1111_1111, 0b1111_1111, (0b10_0111 << 2) | /* padding */ 0b11; + 198 => 0b1111_1111, 0b1111_1111, (0b10_1000 << 2) | /* padding */ 0b11; + 228 => 0b1111_1111, 0b1111_1111, (0b10_1001 << 2) | /* padding */ 0b11; + 232 => 0b1111_1111, 0b1111_1111, (0b10_1010 << 2) | /* padding */ 0b11; + 233 => 0b1111_1111, 0b1111_1111, (0b10_1011 << 2) | /* padding */ 0b11; + 1 => 0b1111_1111, 0b1111_1111, (0b101_1000 << 1) | /* padding */ 0b1; + 135 => 0b1111_1111, 0b1111_1111, (0b101_1001 << 1) | /* padding */ 0b1; + 137 => 0b1111_1111, 0b1111_1111, (0b101_1010 << 1) | /* padding */ 0b1; + 138 => 0b1111_1111, 0b1111_1111, (0b101_1011 << 1) | /* padding */ 0b1; + 139 => 0b1111_1111, 0b1111_1111, (0b101_1100 << 1) | /* padding */ 0b1; + 140 => 0b1111_1111, 0b1111_1111, (0b101_1101 << 1) | /* padding */ 0b1; + 141 => 0b1111_1111, 0b1111_1111, (0b101_1110 << 1) | /* padding */ 0b1; + 143 => 0b1111_1111, 0b1111_1111, (0b101_1111 << 1) | /* padding */ 0b1; + 147 => 0b1111_1111, 0b1111_1111, (0b110_0000 << 1) | /* padding */ 0b1; + 149 => 0b1111_1111, 0b1111_1111, (0b110_0001 << 1) | /* padding */ 0b1; + 150 => 0b1111_1111, 0b1111_1111, (0b110_0010 << 1) | /* padding */ 0b1; + 151 => 0b1111_1111, 0b1111_1111, (0b110_0011 << 1) | /* padding */ 0b1; + 152 => 0b1111_1111, 0b1111_1111, (0b110_0100 << 1) | /* padding */ 0b1; + 155 => 0b1111_1111, 0b1111_1111, (0b110_0101 << 1) | /* padding */ 0b1; + 157 => 0b1111_1111, 0b1111_1111, (0b110_0110 << 1) | /* padding */ 0b1; + 158 => 0b1111_1111, 0b1111_1111, (0b110_0111 << 1) | /* padding */ 0b1; + 165 => 0b1111_1111, 0b1111_1111, (0b110_1000 << 1) | /* padding */ 0b1; + 166 => 0b1111_1111, 0b1111_1111, (0b110_1001 << 1) | /* padding */ 0b1; + 168 => 0b1111_1111, 0b1111_1111, (0b110_1010 << 1) | /* padding */ 0b1; + 174 => 0b1111_1111, 0b1111_1111, (0b110_1011 << 1) | /* padding */ 0b1; + 175 => 0b1111_1111, 0b1111_1111, (0b110_1100 << 1) | /* padding */ 0b1; + 180 => 0b1111_1111, 0b1111_1111, (0b110_1101 << 1) | /* padding */ 0b1; + 182 => 0b1111_1111, 0b1111_1111, (0b110_1110 << 1) | /* padding */ 0b1; + 183 => 0b1111_1111, 0b1111_1111, (0b110_1111 << 1) | /* padding */ 0b1; + 188 => 0b1111_1111, 0b1111_1111, (0b111_0000 << 1) | /* padding */ 0b1; + 191 => 0b1111_1111, 0b1111_1111, (0b111_0001 << 1) | /* padding */ 0b1; + 197 => 0b1111_1111, 0b1111_1111, (0b111_0010 << 1) | /* padding */ 0b1; + 231 => 0b1111_1111, 0b1111_1111, (0b111_0011 << 1) | /* padding */ 0b1; + 239 => 0b1111_1111, 0b1111_1111, (0b111_0100 << 1) | /* padding */ 0b1; + 9 => 0b1111_1111, 0b1111_1111, 0b1110_1010, /* padding */ 0b1111_1111; + 142 => 0b1111_1111, 0b1111_1111, 0b1110_1011, /* padding */ 0b1111_1111; + 144 => 0b1111_1111, 0b1111_1111, 0b1110_1100, /* padding */ 0b1111_1111; + 145 => 0b1111_1111, 0b1111_1111, 0b1110_1101, /* padding */ 0b1111_1111; + 148 => 0b1111_1111, 0b1111_1111, 0b1110_1110, /* padding */ 0b1111_1111; + 159 => 0b1111_1111, 0b1111_1111, 0b1110_1111, /* padding */ 0b1111_1111; + 171 => 0b1111_1111, 0b1111_1111, 0b1111_0000, /* padding */ 0b1111_1111; + 206 => 0b1111_1111, 0b1111_1111, 0b1111_0001, /* padding */ 0b1111_1111; + 215 => 0b1111_1111, 0b1111_1111, 0b1111_0010, /* padding */ 0b1111_1111; + 225 => 0b1111_1111, 0b1111_1111, 0b1111_0011, /* padding */ 0b1111_1111; + 236 => 0b1111_1111, 0b1111_1111, 0b1111_0100, /* padding */ 0b1111_1111; + 237 => 0b1111_1111, 0b1111_1111, 0b1111_0101, /* padding */ 0b1111_1111; + 199 => 0b1111_1111, 0b1111_1111, 0b1111_0110, (0b0 << 7) | /* padding */ 0b111_1111; + 207 => 0b1111_1111, 0b1111_1111, 0b1111_0110, (0b1 << 7) | /* padding */ 0b111_1111; + 234 => 0b1111_1111, 0b1111_1111, 0b1111_0111, (0b0 << 7) | /* padding */ 0b111_1111; + 235 => 0b1111_1111, 0b1111_1111, 0b1111_0111, (0b1 << 7) | /* padding */ 0b111_1111; + 192 => 0b1111_1111, 0b1111_1111, 0b1111_1000, (0b00 << 6) | /* padding */ 0b11_1111; + 193 => 0b1111_1111, 0b1111_1111, 0b1111_1000, (0b01 << 6) | /* padding */ 0b11_1111; + 200 => 0b1111_1111, 0b1111_1111, 0b1111_1000, (0b10 << 6) | /* padding */ 0b11_1111; + 201 => 0b1111_1111, 0b1111_1111, 0b1111_1000, (0b11 << 6) | /* padding */ 0b11_1111; + 202 => 0b1111_1111, 0b1111_1111, 0b1111_1001, (0b00 << 6) | /* padding */ 0b11_1111; + 205 => 0b1111_1111, 0b1111_1111, 0b1111_1001, (0b01 << 6) | /* padding */ 0b11_1111; + 210 => 0b1111_1111, 0b1111_1111, 0b1111_1001, (0b10 << 6) | /* padding */ 0b11_1111; + 213 => 0b1111_1111, 0b1111_1111, 0b1111_1001, (0b11 << 6) | /* padding */ 0b11_1111; + 218 => 0b1111_1111, 0b1111_1111, 0b1111_1010, (0b00 << 6) | /* padding */ 0b11_1111; + 219 => 0b1111_1111, 0b1111_1111, 0b1111_1010, (0b01 << 6) | /* padding */ 0b11_1111; + 238 => 0b1111_1111, 0b1111_1111, 0b1111_1010, (0b10 << 6) | /* padding */ 0b11_1111; + 240 => 0b1111_1111, 0b1111_1111, 0b1111_1010, (0b11 << 6) | /* padding */ 0b11_1111; + 242 => 0b1111_1111, 0b1111_1111, 0b1111_1011, (0b00 << 6) | /* padding */ 0b11_1111; + 243 => 0b1111_1111, 0b1111_1111, 0b1111_1011, (0b01 << 6) | /* padding */ 0b11_1111; + 255 => 0b1111_1111, 0b1111_1111, 0b1111_1011, (0b10 << 6) | /* padding */ 0b11_1111; + 203 => 0b1111_1111, 0b1111_1111, 0b1111_1011, (0b110 << 5) | /* padding */ 0b11111; + 204 => 0b1111_1111, 0b1111_1111, 0b1111_1011, (0b111 << 5) | /* padding */ 0b11111; + 211 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b000 << 5) | /* padding */ 0b11111; + 212 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b001 << 5) | /* padding */ 0b11111; + 214 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b010 << 5) | /* padding */ 0b11111; + 221 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b011 << 5) | /* padding */ 0b11111; + 222 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b100 << 5) | /* padding */ 0b11111; + 223 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b101 << 5) | /* padding */ 0b11111; + 241 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b110 << 5) | /* padding */ 0b11111; + 244 => 0b1111_1111, 0b1111_1111, 0b1111_1100, (0b111 << 5) | /* padding */ 0b11111; + 245 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b000 << 5) | /* padding */ 0b11111; + 246 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b001 << 5) | /* padding */ 0b11111; + 247 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b010 << 5) | /* padding */ 0b11111; + 248 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b011 << 5) | /* padding */ 0b11111; + 250 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b100 << 5) | /* padding */ 0b11111; + 251 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b101 << 5) | /* padding */ 0b11111; + 252 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b110 << 5) | /* padding */ 0b11111; + 253 => 0b1111_1111, 0b1111_1111, 0b1111_1101, (0b111 << 5) | /* padding */ 0b11111; + 254 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b000 << 5) | /* padding */ 0b11111; + 2 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0010 << 4) | /* padding */ 0b1111; + 3 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0011 << 4) | /* padding */ 0b1111; + 4 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0100 << 4) | /* padding */ 0b1111; + 5 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0101 << 4) | /* padding */ 0b1111; + 6 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0110 << 4) | /* padding */ 0b1111; + 7 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b0111 << 4) | /* padding */ 0b1111; + 8 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1000 << 4) | /* padding */ 0b1111; + 11 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1001 << 4) | /* padding */ 0b1111; + 12 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1010 << 4) | /* padding */ 0b1111; + 14 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1011 << 4) | /* padding */ 0b1111; + 15 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1100 << 4) | /* padding */ 0b1111; + 16 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1101 << 4) | /* padding */ 0b1111; + 17 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1110 << 4) | /* padding */ 0b1111; + 18 => 0b1111_1111, 0b1111_1111, 0b1111_1110, (0b1111 << 4) | /* padding */ 0b1111; + 19 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0000 << 4) | /* padding */ 0b1111; + 20 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0001 << 4) | /* padding */ 0b1111; + 21 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0010 << 4) | /* padding */ 0b1111; + 23 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0011 << 4) | /* padding */ 0b1111; + 24 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0100 << 4) | /* padding */ 0b1111; + 25 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0101 << 4) | /* padding */ 0b1111; + 26 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0110 << 4) | /* padding */ 0b1111; + 27 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b0111 << 4) | /* padding */ 0b1111; + 28 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1000 << 4) | /* padding */ 0b1111; + 29 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1001 << 4) | /* padding */ 0b1111; + 30 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1010 << 4) | /* padding */ 0b1111; + 31 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1011 << 4) | /* padding */ 0b1111; + 127 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1100 << 4) | /* padding */ 0b1111; + 220 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1101 << 4) | /* padding */ 0b1111; + 249 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b1110 << 4) | /* padding */ 0b1111; + 10 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b11_1100 << 2) | /* padding */ 0b11; + 13 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b11_1101 << 2) | /* padding */ 0b11; + 22 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b11_1110 << 2) | /* padding */ 0b11; + // 256 => 0b1111_1111, 0b1111_1111, 0b1111_1111, (0b11_1111 << 2) | /* padding */ 0b11; ]; } @@ -590,212 +591,212 @@ mod tests { fn test_decode_all_code_joined() { let bytes = vec![ // 0 |11111111|11000 - 0b11111111, + 0b1111_1111, (0b11000 << 3) // 1 |11111111|11111111|1011000 + 0b111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b1000 << 4) // 2 |11111111|11111111|11111110|0010 + 0b1111, - 0b11111111, - 0b11111111, - 0b11100010, + 0b1111_1111, + 0b1111_1111, + 0b1110_0010, // 3 |11111111|11111111|11111110|0011 - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b0011 << 4) // 4 |11111111|11111111|11111110|0100 + 0b1111, - 0b11111111, - 0b11111111, - 0b11100100, + 0b1111_1111, + 0b1111_1111, + 0b1110_0100, // 5 |11111111|11111111|11111110|0101 - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b0101 << 4) // 6 |11111111|11111111|11111110|0110 + 0b1111, - 0b11111111, - 0b11111111, - 0b11100110, + 0b1111_1111, + 0b1111_1111, + 0b1110_0110, // 7 |11111111|11111111|11111110|0111 - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b0111 << 4) // 8 |11111111|11111111|11111110|1000 + 0b1111, - 0b11111111, - 0b11111111, - 0b11101000, + 0b1111_1111, + 0b1111_1111, + 0b1110_1000, // 9 |11111111|11111111|11101010 - 0b11111111, - 0b11111111, - 0b11101010, + 0b1111_1111, + 0b1111_1111, + 0b1110_1010, // 10 |11111111|11111111|11111111|111100 - 0b11111111, - 0b11111111, - 0b11111111, - (0b111100 << 2) + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_1100 << 2) // 11 |11111111|11111111|11111110|1001 + 0b11, - 0b11111111, - 0b11111111, - 0b11111010, + 0b1111_1111, + 0b1111_1111, + 0b1111_1010, (0b01 << 6) // 12 |11111111|11111111|11111110|1010 - + 0b111111, - 0b11111111, - 0b11111111, - (0b101010 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b10_1010 << 2) // 13 |11111111|11111111|11111111|111101 + 0b11, - 0b11111111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, (0b1101 << 4) // 14 |11111111|11111111|11111110|1011 + 0b1111, - 0b11111111, - 0b11111111, - 0b11101011, + 0b1111_1111, + 0b1111_1111, + 0b1110_1011, // 15 |11111111|11111111|11111110|1100 - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b1100 << 4) // 16 |11111111|11111111|11111110|1101 + 0b1111, - 0b11111111, - 0b11111111, - 0b11101101, + 0b1111_1111, + 0b1111_1111, + 0b1110_1101, // 17 |11111111|11111111|11111110|1110 - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b1110 << 4) // 18 |11111111|11111111|11111110|1111 + 0b1111, - 0b11111111, - 0b11111111, - 0b11101111, + 0b1111_1111, + 0b1111_1111, + 0b1110_1111, // 19 |11111111|11111111|11111111|0000 - 0b11111111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, (0b0000 << 4) // 20 |11111111|11111111|11111111|0001 + 0b1111, - 0b11111111, - 0b11111111, - 0b11110001, + 0b1111_1111, + 0b1111_1111, + 0b1111_0001, // 21 |11111111|11111111|11111111|0010 - 0b11111111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, (0b0010 << 4) // 22 |11111111|11111111|11111111|111110 + 0b1111, - 0b11111111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, (0b10 << 6) // 23 |11111111|11111111|11111111|0011 - + 0b111111, - 0b11111111, - 0b11111111, - (0b110011 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_0011 << 2) // 24 |11111111|11111111|11111111|0100 + 0b11, - 0b11111111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1111, + 0b1111_1101, (0b00 << 6) // 25 |11111111|11111111|11111111|0101 - + 0b111111, - 0b11111111, - 0b11111111, - (0b110101 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_0101 << 2) // 26 |11111111|11111111|11111111|0110 + 0b11, - 0b11111111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1111, + 0b1111_1101, (0b10 << 6) // 27 |11111111|11111111|11111111|0111 - + 0b111111, - 0b11111111, - 0b11111111, - (0b110111 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_0111 << 2) // 28 |11111111|11111111|11111111|1000 + 0b11, - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b00 << 6) // 29 |11111111|11111111|11111111|1001 - + 0b111111, - 0b11111111, - 0b11111111, - (0b111001 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_1001 << 2) // 30 |11111111|11111111|11111111|1010 + 0b11, - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b10 << 6) // 31 |11111111|11111111|11111111|1011 - + 0b111111, - 0b11111111, - 0b11111111, - (0b111011 << 2) + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + (0b11_1011 << 2) // 32 |010100 + 0b01, (0b0100 << 4) // 33 -!- |11111110|00 + 0b1111, - (0b111000 << 2) + (0b11_1000 << 2) // 34 -;- |11111110|01 + 0b11, - 0b11111001, + 0b1111_1001, // 35 -#- |11111111|1010 - 0b11111111, + 0b1111_1111, (0b1010 << 4) // 36 -$- |11111111|11001 + 0b1111, - 0b11111100, + 0b1111_1100, (0b1 << 7) // 37 -%- |010101 - + (0b010101 << 1) + + (0b01_0101 << 1) // 38 -&- |11111000 + 0b1, - (0b1111000 << 1) + (0b111_1000 << 1) // 39 -'- |11111111|010 + 0b1, - 0b11111110, + 0b1111_1110, (0b10 << 6) // 40 -(- |11111110|10 - + 0b111111, + + 0b11_1111, (0b1010 << 4) // 41 -)- |11111110|11 + 0b1111, - (0b111011 << 2) + (0b11_1011 << 2) // 42 -*- |11111001 + 0b11, - (0b111001 << 2) + (0b11_1001 << 2) // 43 -+- |11111111|011 + 0b11, - 0b11111101, + 0b1111_1101, (0b1 << 7) // 44 -,- |11111010 - + 0b1111101, + + 0b111_1101, (0b0 << 7) // 45 --- |010110 - + (0b010110 << 1) + + (0b01_0110 << 1) // 46 -.- |010111 + 0b0, (0b10111 << 3) @@ -810,9 +811,9 @@ mod tests { + 0b000, (0b10 << 6) // 51 -3- |011001 - + 0b011001, + + 0b01_1001, // 52 -4- |011010 - (0b011010 << 2) + (0b01_1010 << 2) // 53 -5- |011011 + 0b01, (0b1011 << 4) @@ -820,9 +821,9 @@ mod tests { + 0b0111, (0b00 << 6) // 55 -7- |011101 - + 0b011101, + + 0b01_1101, // 56 -8- |011110 - (0b011110 << 2) + (0b01_1110 << 2) // 57 -9- |011111 + 0b01, (0b1111 << 4) @@ -834,30 +835,30 @@ mod tests { (0b011 << 5) // 60 -<- |11111111|1111100 + 0b11111, - 0b11111111, + 0b1111_1111, (0b00 << 6) // 61 -=- |100000 - + 0b100000, + + 0b10_0000, // 62 ->- |11111111|1011 - 0b11111111, + 0b1111_1111, (0b1011 << 4) // 63 -?- |11111111|00 + 0b1111, - (0b111100 << 2) + (0b11_1100 << 2) // 64 -@- |11111111|11010 + 0b11, - 0b11111111, + 0b1111_1111, (0b010 << 5) // 65 -A- |100001 + 0b10000, (0b1 << 7) // 66 -B- |1011101 - + 0b1011101, + + 0b101_1101, // 67 -C- |1011110 - (0b1011110 << 1) + (0b101_1110 << 1) // 68 -D- |1011111 + 0b1, - (0b011111 << 2) + (0b01_1111 << 2) // 69 -E- |1100000 + 0b11, (0b00000 << 3) @@ -871,15 +872,15 @@ mod tests { + 0b11000, (0b11 << 6) // 73 -I- |1100100 - + 0b110010, + + 0b11_0010, (0b0 << 7) // 74 -J- |1100101 - + 0b1100101, + + 0b110_0101, // 75 -K- |1100110 - (0b1100110 << 1) + (0b110_0110 << 1) // 76 -L- |1100111 + 0b1, - (0b100111 << 2) + (0b10_0111 << 2) // 77 -M- |1101000 + 0b11, (0b01000 << 3) @@ -893,15 +894,15 @@ mod tests { + 0b11010, (0b11 << 6) // 81 -Q- |1101100 - + 0b110110, + + 0b11_0110, (0b0 << 7) // 82 -R- |1101101 - + 0b1101101, + + 0b110_1101, // 83 -S- |1101110 - (0b1101110 << 1) + (0b110_1110 << 1) // 84 -T- |1101111 + 0b1, - (0b101111 << 2) + (0b10_1111 << 2) // 85 -U- |1110000 + 0b11, (0b10000 << 3) @@ -918,29 +919,29 @@ mod tests { + 0b11100, (0b11 << 6) // 90 -Z- |11111101 - + 0b111111, + + 0b11_1111, (0b01 << 6) // 91 -[- |11111111|11011 - + 0b111111, - (0b1111011 << 1) + + 0b11_1111, + (0b111_1011 << 1) // 92 -\- |11111111|11111110|000 + 0b1, - 0b11111111, - 0b11111100, + 0b1111_1111, + 0b1111_1100, (0b00 << 6) // 93 -]- |11111111|11100 - + 0b111111, - (0b1111100 << 1) + + 0b11_1111, + (0b111_1100 << 1) // 94 -^- |11111111|111100 + 0b1, - 0b11111111, + 0b1111_1111, (0b11100 << 3) // 95 -_- |100010 + 0b100, (0b010 << 5) // 96 -`- |11111111|1111101 + 0b11111, - 0b11111111, + 0b1111_1111, (0b01 << 6) // 97 -a- |00011 + (0b00011 << 1) @@ -951,7 +952,7 @@ mod tests { + 0b001, (0b00 << 6) // 100 -d- |100100 - + 0b100100, + + 0b10_0100, // 101 -e- |00101 (0b00101 << 3) // 102 -f- |100101 @@ -961,7 +962,7 @@ mod tests { + 0b10011, (0b0 << 7) // 104 -h- |100111 - + (0b100111 << 1) + + (0b10_0111 << 1) // 105 -i- |00110 + 0b0, (0b0110 << 4) @@ -972,9 +973,9 @@ mod tests { + 0b11101, (0b01 << 6) // 108 -l- |101000 - + 0b101000, + + 0b10_1000, // 109 -m- |101001 - (0b101001 << 2) + (0b10_1001 << 2) // 110 -n- |101010 + 0b10, (0b1010 << 4) @@ -982,10 +983,10 @@ mod tests { + 0b0011, (0b1 << 7) // 112 -p- |101011 - + (0b101011 << 1) + + (0b10_1011 << 1) // 113 -q- |1110110 + 0b1, - (0b110110 << 2) + (0b11_0110 << 2) // 114 -r- |101100 + 0b10, (0b1100 << 4) @@ -1004,660 +1005,660 @@ mod tests { + 0b11110, (0b00 << 6) // 120 -x- |1111001 - + 0b111100, + + 0b11_1100, (0b1 << 7) // 121 -y- |1111010 - + 0b1111010, + + 0b111_1010, // 122 -z- |1111011 - (0b1111011 << 1) + (0b111_1011 << 1) // 123 -{- |11111111|1111110 + 0b1, - 0b11111111, - (0b111110 << 2) + 0b1111_1111, + (0b11_1110 << 2) // 124 -|- |11111111|100 + 0b11, - 0b11111110, + 0b1111_1110, (0b0 << 7) // 125 -}- |11111111|111101 - + 0b1111111, - (0b1111101 << 1) + + 0b111_1111, + (0b111_1101 << 1) // 126 -~- |11111111|11101 + 0b1, - 0b11111111, + 0b1111_1111, (0b1101 << 4) // 127 |11111111|11111111|11111111|1100 + 0b1111, - 0b11111111, - 0b11111111, - 0b11111100, + 0b1111_1111, + 0b1111_1111, + 0b1111_1100, // 128 |11111111|11111110|0110 - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b0110 << 4) // 129 |11111111|11111111|010010 + 0b1111, - 0b11111111, - 0b11110100, + 0b1111_1111, + 0b1111_0100, (0b10 << 6) // 130 |11111111|11111110|0111 - + 0b111111, - 0b11111111, - (0b100111 << 2) + + 0b11_1111, + 0b1111_1111, + (0b10_0111 << 2) // 131 |11111111|11111110|1000 + 0b11, - 0b11111111, - 0b11111010, + 0b1111_1111, + 0b1111_1010, (0b00 << 6) // 132 |11111111|11111111|010011 - + 0b111111, - 0b11111111, - 0b11010011, + + 0b11_1111, + 0b1111_1111, + 0b1101_0011, // 133 |11111111|11111111|010100 - 0b11111111, - 0b11111111, - (0b010100 << 2) + 0b1111_1111, + 0b1111_1111, + (0b01_0100 << 2) // 134 |11111111|11111111|010101 + 0b11, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b0101 << 4) // 135 |11111111|11111111|1011001 + 0b1111, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1011, (0b001 << 5) // 136 |11111111|11111111|010110 + 0b11111, - 0b11111111, - 0b11101011, + 0b1111_1111, + 0b1110_1011, (0b0 << 7) // 137 |11111111|11111111|1011010 - + 0b1111111, - 0b11111111, - 0b11011010, + + 0b111_1111, + 0b1111_1111, + 0b1101_1010, // 138 |11111111|11111111|1011011 - 0b11111111, - 0b11111111, - (0b1011011 << 1) + 0b1111_1111, + 0b1111_1111, + (0b101_1011 << 1) // 139 |11111111|11111111|1011100 + 0b1, - 0b11111111, - 0b11111111, - (0b011100 << 2) + 0b1111_1111, + 0b1111_1111, + (0b01_1100 << 2) // 140 |11111111|11111111|1011101 + 0b11, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b11101 << 3) // 141 |11111111|11111111|1011110 + 0b111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b1110 << 4) // 142 |11111111|11111111|11101011 + 0b1111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1011 << 4) // 143 |11111111|11111111|1011111 + 0b1111, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1011, (0b111 << 5) // 144 |11111111|11111111|11101100 + 0b11111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b100 << 5) // 145 |11111111|11111111|11101101 + 0b11111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b101 << 5) // 146 |11111111|11111111|010111 + 0b11111, - 0b11111111, - 0b11101011, + 0b1111_1111, + 0b1110_1011, (0b1 << 7) // 147 |11111111|11111111|1100000 - + 0b1111111, - 0b11111111, - 0b11100000, + + 0b111_1111, + 0b1111_1111, + 0b1110_0000, // 148 |11111111|11111111|11101110 - 0b11111111, - 0b11111111, - 0b11101110, + 0b1111_1111, + 0b1111_1111, + 0b1110_1110, // 149 |11111111|11111111|1100001 - 0b11111111, - 0b11111111, - (0b1100001 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_0001 << 1) // 150 |11111111|11111111|1100010 + 0b1, - 0b11111111, - 0b11111111, - (0b100010 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_0010 << 2) // 151 |11111111|11111111|1100011 + 0b11, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b00011 << 3) // 152 |11111111|11111111|1100100 + 0b111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b0100 << 4) // 153 |11111111|11111110|11100 + 0b1111, - 0b11111111, - 0b11101110, + 0b1111_1111, + 0b1110_1110, (0b0 << 7) // 154 |11111111|11111111|011000 - + 0b1111111, - 0b11111111, - (0b1011000 << 1) + + 0b111_1111, + 0b1111_1111, + (0b101_1000 << 1) // 155 |11111111|11111111|1100101 + 0b1, - 0b11111111, - 0b11111111, - (0b100101 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_0101 << 2) // 156 |11111111|11111111|011001 + 0b11, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b1001 << 4) // 157 |11111111|11111111|1100110 + 0b1111, - 0b11111111, - 0b11111100, + 0b1111_1111, + 0b1111_1100, (0b110 << 5) // 158 |11111111|11111111|1100111 + 0b11111, - 0b11111111, - 0b11111001, + 0b1111_1111, + 0b1111_1001, (0b11 << 6) // 159 |11111111|11111111|11101111 - + 0b111111, - 0b11111111, - 0b11111011, + + 0b11_1111, + 0b1111_1111, + 0b1111_1011, (0b11 << 6) // 160 |11111111|11111111|011010 - + 0b111111, - 0b11111111, - 0b11011010, + + 0b11_1111, + 0b1111_1111, + 0b1101_1010, // 161 |11111111|11111110|11101 - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b11101 << 3) // 162 |11111111|11111110|1001 + 0b111, - 0b11111111, - 0b11110100, + 0b1111_1111, + 0b1111_0100, (0b1 << 7) // 163 |11111111|11111111|011011 - + 0b1111111, - 0b11111111, - (0b1011011 << 1) + + 0b111_1111, + 0b1111_1111, + (0b101_1011 << 1) // 164 |11111111|11111111|011100 + 0b1, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b11100 << 3) // 165 |11111111|11111111|1101000 + 0b111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1000 << 4) // 166 |11111111|11111111|1101001 + 0b1111, - 0b11111111, - 0b11111101, + 0b1111_1111, + 0b1111_1101, (0b001 << 5) // 167 |11111111|11111110|11110 + 0b11111, - 0b11111111, - 0b11011110, + 0b1111_1111, + 0b1101_1110, // 168 |11111111|11111111|1101010 - 0b11111111, - 0b11111111, - (0b1101010 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_1010 << 1) // 169 |11111111|11111111|011101 + 0b1, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b11101 << 3) // 170 |11111111|11111111|011110 + 0b111, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1011, (0b110 << 5) // 171 |11111111|11111111|11110000 + 0b11111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b000 << 5) // 172 |11111111|11111110|11111 + 0b11111, - 0b11111111, - 0b11011111, + 0b1111_1111, + 0b1101_1111, // 173 |11111111|11111111|011111 - 0b11111111, - 0b11111111, - (0b011111 << 2) + 0b1111_1111, + 0b1111_1111, + (0b01_1111 << 2) // 174 |11111111|11111111|1101011 + 0b11, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b01011 << 3) // 175 |11111111|11111111|1101100 + 0b111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1100 << 4) // 176 |11111111|11111111|00000 + 0b1111, - 0b11111111, - 0b11110000, + 0b1111_1111, + 0b1111_0000, (0b0 << 7) // 177 |11111111|11111111|00001 - + 0b1111111, - 0b11111111, - (0b100001 << 2) + + 0b111_1111, + 0b1111_1111, + (0b10_0001 << 2) // 178 |11111111|11111111|100000 + 0b11, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b0000 << 4) // 179 |11111111|11111111|00010 + 0b1111, - 0b11111111, - 0b11110001, + 0b1111_1111, + 0b1111_0001, (0b0 << 7) // 180 |11111111|11111111|1101101 - + 0b1111111, - 0b11111111, - 0b11101101, + + 0b111_1111, + 0b1111_1111, + 0b1110_1101, // 181 |11111111|11111111|100001 - 0b11111111, - 0b11111111, - (0b100001 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_0001 << 2) // 182 |11111111|11111111|1101110 + 0b11, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b01110 << 3) // 183 |11111111|11111111|1101111 + 0b111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1111 << 4) // 184 |11111111|11111110|1010 + 0b1111, - 0b11111111, - 0b11101010, + 0b1111_1111, + 0b1110_1010, // 185 |11111111|11111111|100010 - 0b11111111, - 0b11111111, - (0b100010 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_0010 << 2) // 186 |11111111|11111111|100011 + 0b11, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b0011 << 4) // 187 |11111111|11111111|100100 + 0b1111, - 0b11111111, - 0b11111001, + 0b1111_1111, + 0b1111_1001, (0b00 << 6) // 188 |11111111|11111111|1110000 - + 0b111111, - 0b11111111, - 0b11111000, + + 0b11_1111, + 0b1111_1111, + 0b1111_1000, (0b0 << 7) // 189 |11111111|11111111|100101 - + 0b1111111, - 0b11111111, - (0b1100101 << 1) + + 0b111_1111, + 0b1111_1111, + (0b110_0101 << 1) // 190 |11111111|11111111|100110 + 0b1, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b00110 << 3) // 191 |11111111|11111111|1110001 + 0b111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b0001 << 4) // 192 |11111111|11111111|11111000|00 + 0b1111, - 0b11111111, - 0b11111111, - (0b100000 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_0000 << 2) // 193 |11111111|11111111|11111000|01 + 0b11, - 0b11111111, - 0b11111111, - 0b11100001, + 0b1111_1111, + 0b1111_1111, + 0b1110_0001, // 194 |11111111|11111110|1011 - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1011 << 4) // 195 |11111111|11111110|001 + 0b1111, - 0b11111111, - (0b1110001 << 1) + 0b1111_1111, + (0b111_0001 << 1) // 196 |11111111|11111111|100111 + 0b1, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b00111 << 3) // 197 |11111111|11111111|1110010 + 0b111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b0010 << 4) // 198 |11111111|11111111|101000 + 0b1111, - 0b11111111, - 0b11111010, + 0b1111_1111, + 0b1111_1010, (0b00 << 6) // 199 |11111111|11111111|11110110|0 - + 0b111111, - 0b11111111, - 0b11111101, + + 0b11_1111, + 0b1111_1111, + 0b1111_1101, (0b100 << 5) // 200 |11111111|11111111|11111000|10 + 0b11111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b00010 << 3) // 201 |11111111|11111111|11111000|11 + 0b111, - 0b11111111, - 0b11111111, - (0b1100011 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_0011 << 1) // 202 |11111111|11111111|11111001|00 + 0b1, - 0b11111111, - 0b11111111, - 0b11110010, + 0b1111_1111, + 0b1111_1111, + 0b1111_0010, (0b0 << 7) // 203 |11111111|11111111|11111011|110 - + 0b1111111, - 0b11111111, - 0b11111101, + + 0b111_1111, + 0b1111_1111, + 0b1111_1101, (0b1110 << 4) // 204 |11111111|11111111|11111011|111 + 0b1111, - 0b11111111, - 0b11111111, - (0b1011111 << 1) + 0b1111_1111, + 0b1111_1111, + (0b101_1111 << 1) // 205 |11111111|11111111|11111001|01 + 0b1, - 0b11111111, - 0b11111111, - 0b11110010, + 0b1111_1111, + 0b1111_1111, + 0b1111_0010, (0b1 << 7) // 206 |11111111|11111111|11110001 - + 0b1111111, - 0b11111111, - 0b11111000, + + 0b111_1111, + 0b1111_1111, + 0b1111_1000, (0b1 << 7) // 207 |11111111|11111111|11110110|1 - + 0b1111111, - 0b11111111, - 0b11111011, + + 0b111_1111, + 0b1111_1111, + 0b1111_1011, (0b01 << 6) // 208 |11111111|11111110|010 - + 0b111111, - 0b11111111, + + 0b11_1111, + 0b1111_1111, (0b10010 << 3) // 209 |11111111|11111111|00011 + 0b111, - 0b11111111, - 0b11111000, + 0b1111_1111, + 0b1111_1000, (0b11 << 6) // 210 |11111111|11111111|11111001|10 - + 0b111111, - 0b11111111, - 0b11111110, + + 0b11_1111, + 0b1111_1111, + 0b1111_1110, (0b0110 << 4) // 211 |11111111|11111111|11111100|000 + 0b1111, - 0b11111111, - 0b11111111, - (0b1100000 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_0000 << 1) // 212 |11111111|11111111|11111100|001 + 0b1, - 0b11111111, - 0b11111111, - 0b11111000, + 0b1111_1111, + 0b1111_1111, + 0b1111_1000, (0b01 << 6) // 213 |11111111|11111111|11111001|11 - + 0b111111, - 0b11111111, - 0b11111110, + + 0b11_1111, + 0b1111_1111, + 0b1111_1110, (0b0111 << 4) // 214 |11111111|11111111|11111100|010 + 0b1111, - 0b11111111, - 0b11111111, - (0b1100010 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_0010 << 1) // 215 |11111111|11111111|11110010 + 0b1, - 0b11111111, - 0b11111111, - (0b1110010 << 1) + 0b1111_1111, + 0b1111_1111, + (0b111_0010 << 1) // 216 |11111111|11111111|00100 + 0b1, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b0100 << 4) // 217 |11111111|11111111|00101 + 0b1111, - 0b11111111, - 0b11110010, + 0b1111_1111, + 0b1111_0010, (0b1 << 7) // 218 |11111111|11111111|11111010|00 - + 0b1111111, - 0b11111111, - 0b11111101, + + 0b111_1111, + 0b1111_1111, + 0b1111_1101, (0b000 << 5) // 219 |11111111|11111111|11111010|01 + 0b11111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b01001 << 3) // 220 |11111111|11111111|11111111|1101 + 0b111, - 0b11111111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1111, + 0b1111_1110, (0b1 << 7) // 221 |11111111|11111111|11111100|011 - + 0b1111111, - 0b11111111, - 0b11111110, + + 0b111_1111, + 0b1111_1111, + 0b1111_1110, (0b0011 << 4) // 222 |11111111|11111111|11111100|100 + 0b1111, - 0b11111111, - 0b11111111, - (0b1100100 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_0100 << 1) // 223 |11111111|11111111|11111100|101 + 0b1, - 0b11111111, - 0b11111111, - 0b11111001, + 0b1111_1111, + 0b1111_1111, + 0b1111_1001, (0b01 << 6) // 224 |11111111|11111110|1100 - + 0b111111, - 0b11111111, - (0b101100 << 2) + + 0b11_1111, + 0b1111_1111, + (0b10_1100 << 2) // 225 |11111111|11111111|11110011 + 0b11, - 0b11111111, - 0b11111111, - (0b110011 << 2) + 0b1111_1111, + 0b1111_1111, + (0b11_0011 << 2) // 226 |11111111|11111110|1101 + 0b11, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1011, (0b01 << 6) // 227 |11111111|11111111|00110 - + 0b111111, - 0b11111111, - (0b1100110 << 1) + + 0b11_1111, + 0b1111_1111, + (0b110_0110 << 1) // 228 |11111111|11111111|101001 + 0b1, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b01001 << 3) // 229 |11111111|11111111|00111 + 0b111, - 0b11111111, - 0b11111001, + 0b1111_1111, + 0b1111_1001, (0b11 << 6) // 230 |11111111|11111111|01000 - + 0b111111, - 0b11111111, - (0b1101000 << 1) + + 0b11_1111, + 0b1111_1111, + (0b110_1000 << 1) // 231 |11111111|11111111|1110011 + 0b1, - 0b11111111, - 0b11111111, - (0b110011 << 2) + 0b1111_1111, + 0b1111_1111, + (0b11_0011 << 2) // 232 |11111111|11111111|101010 + 0b11, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1010 << 4) // 233 |11111111|11111111|101011 + 0b1111, - 0b11111111, - 0b11111010, + 0b1111_1111, + 0b1111_1010, (0b11 << 6) // 234 |11111111|11111111|11110111|0 - + 0b111111, - 0b11111111, - 0b11111101, + + 0b11_1111, + 0b1111_1111, + 0b1111_1101, (0b110 << 5) // 235 |11111111|11111111|11110111|1 + 0b11111, - 0b11111111, - 0b11111110, + 0b1111_1111, + 0b1111_1110, (0b1111 << 4) // 236 |11111111|11111111|11110100 + 0b1111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b0100 << 4) // 237 |11111111|11111111|11110101 + 0b1111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b0101 << 4) // 238 |11111111|11111111|11111010|10 + 0b1111, - 0b11111111, - 0b11111111, - (0b101010 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_1010 << 2) // 239 |11111111|11111111|1110100 + 0b11, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, (0b10100 << 3) // 240 |11111111|11111111|11111010|11 + 0b111, - 0b11111111, - 0b11111111, - (0b1101011 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_1011 << 1) // 241 |11111111|11111111|11111100|110 + 0b1, - 0b11111111, - 0b11111111, - 0b11111001, + 0b1111_1111, + 0b1111_1111, + 0b1111_1001, (0b10 << 6) // 242 |11111111|11111111|11111011|00 - + 0b111111, - 0b11111111, - 0b11111110, + + 0b11_1111, + 0b1111_1111, + 0b1111_1110, (0b1100 << 4) // 243 |11111111|11111111|11111011|01 + 0b1111, - 0b11111111, - 0b11111111, - (0b101101 << 2) + 0b1111_1111, + 0b1111_1111, + (0b10_1101 << 2) // 244 |11111111|11111111|11111100|111 + 0b11, - 0b11111111, - 0b11111111, - 0b11110011, + 0b1111_1111, + 0b1111_1111, + 0b1111_0011, (0b1 << 7) // 245 |11111111|11111111|11111101|000 - + 0b1111111, - 0b11111111, - 0b11111110, + + 0b111_1111, + 0b1111_1111, + 0b1111_1110, (0b1000 << 4) // 246 |11111111|11111111|11111101|001 + 0b1111, - 0b11111111, - 0b11111111, - (0b1101001 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_1001 << 1) // 247 |11111111|11111111|11111101|010 + 0b1, - 0b11111111, - 0b11111111, - 0b11111010, + 0b1111_1111, + 0b1111_1111, + 0b1111_1010, (0b10 << 6) // 248 |11111111|11111111|11111101|011 - + 0b111111, - 0b11111111, - 0b11111111, + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, (0b01011 << 3) // 249 |11111111|11111111|11111111|1110 + 0b111, - 0b11111111, - 0b11111111, - 0b11111111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, (0b0 << 7) // 250 |11111111|11111111|11111101|100 - + 0b1111111, - 0b11111111, - 0b11111110, + + 0b111_1111, + 0b1111_1111, + 0b1111_1110, (0b1100 << 4) // 251 |11111111|11111111|11111101|101 + 0b1111, - 0b11111111, - 0b11111111, - (0b1101101 << 1) + 0b1111_1111, + 0b1111_1111, + (0b110_1101 << 1) // 252 |11111111|11111111|11111101|110 + 0b1, - 0b11111111, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1111, + 0b1111_1011, (0b10 << 6) // 253 |11111111|11111111|11111101|111 - + 0b111111, - 0b11111111, - 0b11111111, + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, (0b01111 << 3) // 254 |11111111|11111111|11111110|000 + 0b111, - 0b11111111, - 0b11111111, - 0b11110000, + 0b1111_1111, + 0b1111_1111, + 0b1111_0000, // 255 |11111111|11111111|11111011|10 - 0b11111111, - 0b11111111, - 0b11111011, + 0b1111_1111, + 0b1111_1111, + 0b1111_1011, (0b10 << 6) // 256 eof |11111111|11111111|11111111|111111 - + 0b111111, - 0b11111111, - 0b11111111, - 0b11111111, + + 0b11_1111, + 0b1111_1111, + 0b1111_1111, + 0b1111_1111, ]; - let expected = (0u8..=255).into_iter().collect(); + let expected = (0u8..=255).collect(); let res: Result, Error> = bytes.hpack_decode().collect(); assert_eq!(res, Ok(expected)); } diff --git a/quinn-h3/src/qpack/prefix_string/encode.rs b/quinn-h3/src/qpack/prefix_string/encode.rs index 2104f5c1a..dd540aad5 100644 --- a/quinn-h3/src/qpack/prefix_string/encode.rs +++ b/quinn-h3/src/qpack/prefix_string/encode.rs @@ -394,6 +394,7 @@ mod tests { * Appendix B. Huffman Code */ #[test] + #[allow(clippy::cognitive_complexity)] fn test_encode_single_value() { encoding![ 48 => (0b0000_0000 << 3) | /* padding */ 0b0000_0111; // '0' @@ -1727,7 +1728,7 @@ mod tests { // end filler + 0b0011_1111, ]; - let values: Vec = (0..=255).into_iter().collect(); + let values: Vec = (0..=255).collect(); let res = values.hpack_encode(); assert_eq!(res, Ok(bytes)); } diff --git a/quinn-proto/src/frame.rs b/quinn-proto/src/frame.rs index c23c8faf6..0d0199ee9 100644 --- a/quinn-proto/src/frame.rs +++ b/quinn-proto/src/frame.rs @@ -813,6 +813,7 @@ mod test { use super::*; #[test] + #[allow(clippy::range_plus_one)] fn ack_coding() { const PACKETS: &[u64] = &[1, 2, 3, 5, 10, 11, 14]; let mut ranges = RangeSet::new(); @@ -830,7 +831,7 @@ mod test { assert_eq!(frames.len(), 1); match frames[0] { Frame::Ack(ref ack) => { - let mut packets = ack.iter().flat_map(|x| x).collect::>(); + let mut packets = ack.iter().flatten().collect::>(); packets.sort_unstable(); assert_eq!(&packets[..], PACKETS); assert_eq!(ack.ecn, Some(ECN)); diff --git a/quinn-proto/src/tests/mod.rs b/quinn-proto/src/tests/mod.rs index 40213926f..b0a2e2f6c 100644 --- a/quinn-proto/src/tests/mod.rs +++ b/quinn-proto/src/tests/mod.rs @@ -363,7 +363,7 @@ fn zero_rtt_happypath() { CLIENT_PORTS.lock().unwrap().next().unwrap(), ); info!("resuming session"); - let client_ch = pair.begin_connect(config.clone()); + let client_ch = pair.begin_connect(config); assert!(pair.client_conn_mut(client_ch).has_0rtt()); let s = pair.client_conn_mut(client_ch).open(Dir::Uni).unwrap(); const MSG: &[u8] = b"Hello, 0-RTT!"; @@ -455,7 +455,7 @@ fn alpn_success() { .set_protocols(&["bar".into(), "quux".into(), "corge".into()]); // Establish normal connection - let client_conn = pair.begin_connect(client_config.clone()); + let client_conn = pair.begin_connect(client_config); pair.drive(); let server_conn = pair.server.assert_accept(); assert_matches!( @@ -757,7 +757,7 @@ fn server_hs_retransmit() { let mut pair = Pair::default(); let client_ch = pair.begin_connect(client_config()); pair.step(); - assert!(pair.client.inbound.len() > 0); // Initial + Handshakes + assert!(!pair.client.inbound.is_empty()); // Initial + Handshakes pair.client.inbound.clear(); pair.drive(); assert_matches!( diff --git a/quinn-proto/src/tests/util.rs b/quinn-proto/src/tests/util.rs index 35fb8ee5d..50d167604 100644 --- a/quinn-proto/src/tests/util.rs +++ b/quinn-proto/src/tests/util.rs @@ -229,7 +229,7 @@ impl TestEndpoint { DatagramEvent::ConnectionEvent(event) => { self.conn_events .entry(ch) - .or_insert_with(|| VecDeque::new()) + .or_insert_with(VecDeque::new) .push_back(event); } } @@ -386,7 +386,6 @@ pub fn client_config() -> ClientConfig { ClientConfig { transport: Default::default(), crypto, - ..Default::default() } } diff --git a/quinn/examples/client.rs b/quinn/examples/client.rs index 09524bbe2..cb5f8c564 100644 --- a/quinn/examples/client.rs +++ b/quinn/examples/client.rs @@ -62,7 +62,7 @@ fn run(options: Opt) -> Result<()> { let remote = (url.host_str().unwrap(), url.port().unwrap_or(4433)) .to_socket_addrs()? .next() - .ok_or(anyhow!("couldn't resolve to an address"))?; + .ok_or_else(|| anyhow!("couldn't resolve to an address"))?; let mut endpoint = quinn::Endpoint::builder(); let mut client_config = quinn::ClientConfigBuilder::default(); @@ -102,7 +102,7 @@ fn run(options: Opt) -> Result<()> { .host .as_ref() .map_or_else(|| url.host_str(), |x| Some(&x)) - .ok_or(anyhow!("no hostname specified"))?; + .ok_or_else(|| anyhow!("no hostname specified"))?; let r: Result<()> = runtime.block_on(async { let new_conn = endpoint .connect(&remote, &host)?