diff --git a/Cargo.toml b/Cargo.toml index 227c334..34e080f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,17 +1,16 @@ [package] name = "bcndecode" -version = "0.2.0" -authors = ["Istvan Fehervari ", "Robert Nix "] +version = "0.2.1" +authors = ["Istvan Fehervari ", "Robert Nix ", "REDxEYE "] description = "Decoder for DXTn-compressed image data." license = "MIT" build = "build.rs" -repository = "https://github.com/ifeherva/bcndecode" -homepage = "https://github.com/ifeherva/bcndecode" +repository = "https://github.com/REDxEYE/bcndecode" +homepage = "https://github.com/REDxEYE/bcndecode" keywords = ["bcn", "dxt", "image-processing"] -travis-ci = { repository = "https://github.com/ifeherva/bcndecode", branch = "master" } [build-dependencies] -gcc = "0.3" +cc = "1.0.96" [dev-dependencies] libc = "0.2.26" diff --git a/build.rs b/build.rs index 198a10d..d1c2dc6 100644 --- a/build.rs +++ b/build.rs @@ -1,8 +1,8 @@ -extern crate gcc; +extern crate cc; fn main() { if cfg!(feature = "test") { - gcc::Config::new() + cc::Build::new() .file("src/bcndecode.c") .compile("libbcndecode.a"); } diff --git a/src/bcndecode.c b/src/bcndecode.c index f8d2da6..eb0726e 100644 --- a/src/bcndecode.c +++ b/src/bcndecode.c @@ -621,72 +621,56 @@ static const bc6_mode_info bc6_modes[] = { /* Table.F, encoded as a sequence of bit indices */ static const uint8_t bc6_bit_packings[][75] = { - {116, 132, 176, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, - 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, 172, 160, 161, 162, 163, 80, - 81, 82, 83, 84, 173, 128, 129, 130, 131, 96, 97, 98, 99, 100, 174, 144, - 145, 146, 147, 148, 175}, - {117, 164, 165, 0, 1, 2, 3, 4, 5, 6, 172, 173, 132, 16, 17, 18, 19, 20, 21, - 22, 133, 174, 116, 32, 33, 34, 35, 36, 37, 38, 175, 177, 176, 48, 49, 50, - 51, 52, 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, 69, 160, 161, 162, 163, - 80, 81, 82, 83, 84, 85, 128, 129, 130, 131, 96, 97, 98, 99, 100, 101, 144, - 145, 146, 147, 148, 149}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 10, 112, 113, 114, - 115, 64, 65, 66, 67, 26, 172, 160, 161, 162, 163, 80, 81, 82, 83, 42, 173, - 128, 129, 130, 131, 96, 97, 98, 99, 100, 174, 144, 145, 146, 147, 148, - 175}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 10, 164, 112, 113, 114, - 115, 64, 65, 66, 67, 68, 26, 160, 161, 162, 163, 80, 81, 82, 83, 42, 173, - 128, 129, 130, 131, 96, 97, 98, 99, 172, 174, 144, 145, 146, 147, 116, - 175}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 10, 132, 112, 113, 114, - 115, 64, 65, 66, 67, 26, 172, 160, 161, 162, 163, 80, 81, 82, 83, 84, 42, - 128, 129, 130, 131, 96, 97, 98, 99, 173, 174, 144, 145, 146, 147, 176, - 175}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 132, 16, 17, 18, 19, 20, 21, 22, 23, 24, 116, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 176, 48, 49, 50, 51, 52, 164, 112, 113, - 114, 115, 64, 65, 66, 67, 68, 172, 160, 161, 162, 163, 80, 81, 82, 83, 84, - 173, 128, 129, 130, 131, 96, 97, 98, 99, 100, 174, 144, 145, 146, 147, 148, - 175}, - {0, 1, 2, 3, 4, 5, 6, 7, 164, 132, 16, 17, 18, 19, 20, 21, 22, 23, 174, 116, - 32, 33, 34, 35, 36, 37, 38, 39, 175, 176, 48, 49, 50, 51, 52, 53, 112, 113, - 114, 115, 64, 65, 66, 67, 68, 172, 160, 161, 162, 163, 80, 81, 82, 83, 84, - 173, 128, 129, 130, 131, 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, - 149}, - {0, 1, 2, 3, 4, 5, 6, 7, 172, 132, 16, 17, 18, 19, 20, 21, 22, 23, 117, 116, - 32, 33, 34, 35, 36, 37, 38, 39, 165, 176, 48, 49, 50, 51, 52, 164, 112, - 113, 114, 115, 64, 65, 66, 67, 68, 69, 160, 161, 162, 163, 80, 81, 82, 83, - 84, 173, 128, 129, 130, 131, 96, 97, 98, 99, 100, 174, 144, 145, 146, 147, - 148, 175}, - {0, 1, 2, 3, 4, 5, 6, 7, 173, 132, 16, 17, 18, 19, 20, 21, 22, 23, 133, 116, - 32, 33, 34, 35, 36, 37, 38, 39, 177, 176, 48, 49, 50, 51, 52, 164, 112, - 113, 114, 115, 64, 65, 66, 67, 68, 172, 160, 161, 162, 163, 80, 81, 82, 83, - 84, 85, 128, 129, 130, 131, 96, 97, 98, 99, 100, 174, 144, 145, 146, 147, - 148, 175}, - {0, 1, 2, 3, 4, 5, 164, 172, 173, 132, 16, 17, 18, 19, 20, 21, 117, 133, - 174, 116, 32, 33, 34, 35, 36, 37, 165, 175, 177, 176, 48, 49, 50, 51, 52, - 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, 69, 160, 161, 162, 163, 80, 81, - 82, 83, 84, 85, 128, 129, 130, 131, 96, 97, 98, 99, 100, 101, 144, 145, - 146, 147, 148, 149}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 10, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 26, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 42}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 11, 10, - 64, 65, 66, 67, 68, 69, 70, 71, 27, 26, 80, 81, 82, 83, 84, 85, 86, 87, 43, - 42}, - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 15, 14, 13, 12, 11, 10, - 64, 65, 66, 67, 31, 30, 29, 28, 27, 26, 80, 81, 82, 83, 47, 46, 45, 44, 43, - 42}}; + {116, 132, 180, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, + 66, 67, 68, 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, + 129, 130, 131, 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179}, + {117, 164, 165, 0, 1, 2, 3, 4, 5, 6, 176, 177, 132, 16, 17, + 18, 19, 20, 21, 22, 133, 178, 116, 32, 33, 34, 35, 36, 37, 38, + 179, 181, 180, 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, + 66, 67, 68, 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, + 129, 130, 131, 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149}, + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 52, 10, 112, 113, 114, 115, 64, 65, 66, 67, 26, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 42, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179}, + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 10, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 26, 160, 161, 162, 163, 80, 81, 82, 83, 42, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 176, 178, 144, 145, 146, 147, 116, 179}, + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 10, 132, 112, 113, 114, 115, 64, 65, 66, 67, 26, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 42, 128, 129, 130, 131, + 96, 97, 98, 99, 177, 178, 144, 145, 146, 147, 180, 179}, + {0, 1, 2, 3, 4, 5, 6, 7, 8, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 116, 32, 33, 34, 35, 36, 37, 38, 39, 40, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179}, + {0, 1, 2, 3, 4, 5, 6, 7, 164, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 178, 116, 32, 33, 34, 35, 36, 37, 38, 39, 179, 180, + 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149}, + {0, 1, 2, 3, 4, 5, 6, 7, 176, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 117, 116, 32, 33, 34, 35, 36, 37, 38, 39, 165, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179}, + {0, 1, 2, 3, 4, 5, 6, 7, 177, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 133, 116, 32, 33, 34, 35, 36, 37, 38, 39, 181, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179}, + {0, 1, 2, 3, 4, 5, 164, 176, 177, 132, 16, 17, 18, 19, 20, + 21, 117, 133, 178, 116, 32, 33, 34, 35, 36, 37, 165, 179, 181, 180, + 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149}}; static void bc6_sign_extend(uint16_t *v, int prec) { @@ -870,15 +854,6 @@ static void decode_bc6_block(rgb32f *col, const uint8_t *src, int sign) { endpoints[i] = (endpoints[i] + endpoints[0]) & mask; } - if (sign) - { - for (i = 3; i < numep; i += 3) - { - bc6_sign_extend(&endpoints[i + 0], info->rb); - bc6_sign_extend(&endpoints[i + 1], info->gb); - bc6_sign_extend(&endpoints[i + 2], info->bb); - } - } } for (i = 0; i < numep; i++) { diff --git a/src/decode.rs b/src/decode.rs index 9e60076..27f0929 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -18,10 +18,11 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -use super::{BcnDecoderFormat, BcnEncoding, Error}; use std::mem; use std::slice; +use super::{BcnDecoderFormat, BcnEncoding, Error}; + #[derive(Default)] struct BcnDecoderState { // Destination buffer, a bitmap. @@ -432,15 +433,6 @@ fn decode_bc6h_block(col: &mut [RGB32f], source: &[u8], sign: bool) { for i in 3..numep { endpoints[i] = ((endpoints[i] as usize + endpoints[0] as usize) & mask as usize) as u16; } - if sign { - let mut i = 3; - while i < numep { - bc6_sign_extend(&mut endpoints[i + 0], info.rb as isize); - bc6_sign_extend(&mut endpoints[i + 1], info.gb as isize); - bc6_sign_extend(&mut endpoints[i + 2], info.bb as isize); - i += 3; - } - } } let mut ueps: [isize; 12] = [0; 12]; for i in 0..numep { @@ -689,1085 +681,72 @@ fn bc7_get_weights(n: u8) -> &'static [u8] { } static BC6_BIT_PACKINGS: [[u8; 75]; 14] = [ - [ - 116, - 132, - 176, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 52, - 164, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 174, - 144, - 145, - 146, - 147, - 148, - 175, - ], - [ - 117, - 164, - 165, - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 172, - 173, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 133, - 174, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 175, - 177, - 176, - 48, - 49, - 50, - 51, - 52, - 53, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 69, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 85, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 101, - 144, - 145, - 146, - 147, - 148, - 149, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 52, - 10, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 26, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 42, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 174, - 144, - 145, - 146, - 147, - 148, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 10, - 164, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 26, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 42, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 172, - 174, - 144, - 145, - 146, - 147, - 116, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 10, - 132, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 26, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 42, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 173, - 174, - 144, - 145, - 146, - 147, - 176, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 176, - 48, - 49, - 50, - 51, - 52, - 164, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 174, - 144, - 145, - 146, - 147, - 148, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 164, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 174, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 175, - 176, - 48, - 49, - 50, - 51, - 52, - 53, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 101, - 144, - 145, - 146, - 147, - 148, - 149, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 172, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 117, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 165, - 176, - 48, - 49, - 50, - 51, - 52, - 164, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 69, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 173, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 174, - 144, - 145, - 146, - 147, - 148, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 173, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 133, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 177, - 176, - 48, - 49, - 50, - 51, - 52, - 164, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 172, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 85, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 174, - 144, - 145, - 146, - 147, - 148, - 175, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 164, - 172, - 173, - 132, - 16, - 17, - 18, - 19, - 20, - 21, - 117, - 133, - 174, - 116, - 32, - 33, - 34, - 35, - 36, - 37, - 165, - 175, - 177, - 176, - 48, - 49, - 50, - 51, - 52, - 53, - 112, - 113, - 114, - 115, - 64, - 65, - 66, - 67, - 68, - 69, - 160, - 161, - 162, - 163, - 80, - 81, - 82, - 83, - 84, - 85, - 128, - 129, - 130, - 131, - 96, - 97, - 98, - 99, - 100, - 101, - 144, - 145, - 146, - 147, - 148, - 149, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 10, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 26, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 42, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 11, - 10, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 27, - 26, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 43, - 42, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - ], - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 48, - 49, - 50, - 51, - 15, - 14, - 13, - 12, - 11, - 10, - 64, - 65, - 66, - 67, - 31, - 30, - 29, - 28, - 27, - 26, - 80, - 81, - 82, - 83, - 47, - 46, - 45, - 44, - 43, - 42, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - ], -]; + [116, 132, 180, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, + 66, 67, 68, 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, + 129, 130, 131, 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179], + [117, 164, 165, 0, 1, 2, 3, 4, 5, 6, 176, 177, 132, 16, 17, + 18, 19, 20, 21, 22, 133, 178, 116, 32, 33, 34, 35, 36, 37, 38, + 179, 181, 180, 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, + 66, 67, 68, 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, + 129, 130, 131, 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 52, 10, 112, 113, 114, 115, 64, 65, 66, 67, 26, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 42, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 10, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 26, 160, 161, 162, 163, 80, 81, 82, 83, 42, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 176, 178, 144, 145, 146, 147, 116, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 48, 49, 50, 51, 10, 132, 112, 113, 114, 115, 64, 65, 66, 67, 26, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 42, 128, 129, 130, 131, + 96, 97, 98, 99, 177, 178, 144, 145, 146, 147, 180, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 116, 32, 33, 34, 35, 36, 37, 38, 39, 40, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 164, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 178, 116, 32, 33, 34, 35, 36, 37, 38, 39, 179, 180, + 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 176, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 117, 116, 32, 33, 34, 35, 36, 37, 38, 39, 165, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 177, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 177, 132, 16, 17, 18, 19, 20, + 21, 22, 23, 133, 116, 32, 33, 34, 35, 36, 37, 38, 39, 181, 180, + 48, 49, 50, 51, 52, 164, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 176, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 178, 144, 145, 146, 147, 148, 179, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 164, 176, 177, 132, 16, 17, 18, 19, 20, + 21, 117, 133, 178, 116, 32, 33, 34, 35, 36, 37, 165, 179, 181, 180, + 48, 49, 50, 51, 52, 53, 112, 113, 114, 115, 64, 65, 66, 67, 68, + 69, 160, 161, 162, 163, 80, 81, 82, 83, 84, 85, 128, 129, 130, 131, + 96, 97, 98, 99, 100, 101, 144, 145, 146, 147, 148, 149, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 56, 10, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 26, 80, 81, 82, 83, 84, 85, 86, 87, 88, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 52, 53, 54, 55, 11, 10, + 64, 65, 66, 67, 68, 69, 70, 71, 27, 26, 80, 81, 82, 83, 84, 85, 86, 87, 43, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 48, 49, 50, 51, 15, 14, 13, 12, 11, 10, + 64, 65, 66, 67, 31, 30, 29, 28, 27, 26, 80, 81, 82, 83, 47, 46, 45, 44, 43, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; /* Subset indices: Table.P2, 1 bit per index */ diff --git a/src/lib.rs b/src/lib.rs index 6676f92..7a0f7a1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,7 +82,7 @@ impl error::Error for Error { impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{}", error::Error::description(self)) + write!(f, "{}", self) } }