pub const VERSION_MIN: usize = 1;
pub const VERSION_MAX: usize = 40;
#[derive(Debug, Clone, Default)]
pub struct RsParams {
pub bs: i32,
pub dw: i32,
pub ns: i32,
}
impl RsParams {
pub const fn new(bs: i32, dw: i32, ns: i32) -> Self {
Self { bs, dw, ns }
}
}
#[derive(Debug, Clone, Default)]
pub struct VersionInfo {
pub data_bytes: i32,
pub apat: [i32; 7],
pub ecc: [RsParams; 4],
}
pub static VERSION_DB: [VersionInfo; 41] = [
VersionInfo {
data_bytes: 0,
apat: [0; 7],
ecc: [RsParams::new(0, 0, 0), RsParams::new(0, 0, 0), RsParams::new(0, 0, 0), RsParams::new(0, 0, 0)],
},
VersionInfo {
data_bytes: 26,
apat: [0, 0, 0, 0, 0, 0, 0],
ecc: [RsParams::new(26, 16, 1), RsParams::new(26, 19, 1), RsParams::new(26, 9, 1), RsParams::new(26, 13, 1)],
},
VersionInfo {
data_bytes: 44,
apat: [6, 18, 0, 0, 0, 0, 0],
ecc: [RsParams::new(44, 28, 1), RsParams::new(44, 34, 1), RsParams::new(44, 16, 1), RsParams::new(44, 22, 1)],
},
VersionInfo {
data_bytes: 70,
apat: [6, 22, 0, 0, 0, 0, 0],
ecc: [RsParams::new(70, 44, 1), RsParams::new(70, 55, 1), RsParams::new(35, 13, 2), RsParams::new(35, 17, 2)],
},
VersionInfo {
data_bytes: 100,
apat: [6, 26, 0, 0, 0, 0, 0],
ecc: [RsParams::new(50, 32, 2), RsParams::new(100, 80, 1), RsParams::new(25, 9, 4), RsParams::new(50, 24, 2)],
},
VersionInfo {
data_bytes: 134,
apat: [6, 30, 0, 0, 0, 0, 0],
ecc: [RsParams::new(67, 43, 2), RsParams::new(134, 108, 1), RsParams::new(33, 11, 2), RsParams::new(33, 15, 2)],
},
VersionInfo {
data_bytes: 172,
apat: [6, 34, 0, 0, 0, 0, 0],
ecc: [RsParams::new(43, 27, 4), RsParams::new(86, 68, 2), RsParams::new(43, 15, 4), RsParams::new(43, 19, 4)],
},
VersionInfo {
data_bytes: 196,
apat: [6, 22, 38, 0, 0, 0, 0],
ecc: [RsParams::new(49, 31, 4), RsParams::new(98, 78, 2), RsParams::new(39, 13, 4), RsParams::new(32, 14, 2)],
},
VersionInfo {
data_bytes: 242,
apat: [6, 24, 42, 0, 0, 0, 0],
ecc: [RsParams::new(60, 38, 2), RsParams::new(121, 97, 2), RsParams::new(40, 14, 4), RsParams::new(40, 18, 4)],
},
VersionInfo {
data_bytes: 292,
apat: [6, 26, 46, 0, 0, 0, 0],
ecc: [RsParams::new(58, 36, 3), RsParams::new(146, 116, 2), RsParams::new(36, 12, 4), RsParams::new(36, 16, 4)],
},
VersionInfo {
data_bytes: 346,
apat: [6, 28, 50, 0, 0, 0, 0],
ecc: [RsParams::new(69, 43, 4), RsParams::new(86, 68, 2), RsParams::new(43, 15, 6), RsParams::new(43, 19, 6)],
},
VersionInfo {
data_bytes: 404,
apat: [6, 30, 54, 0, 0, 0, 0],
ecc: [RsParams::new(80, 50, 1), RsParams::new(101, 81, 4), RsParams::new(36, 12, 3), RsParams::new(50, 22, 4)],
},
VersionInfo {
data_bytes: 466,
apat: [6, 32, 58, 0, 0, 0, 0],
ecc: [RsParams::new(58, 36, 6), RsParams::new(116, 92, 2), RsParams::new(42, 14, 7), RsParams::new(46, 20, 4)],
},
VersionInfo {
data_bytes: 532,
apat: [6, 34, 62, 0, 0, 0, 0],
ecc: [RsParams::new(59, 37, 8), RsParams::new(133, 107, 4), RsParams::new(33, 11, 12), RsParams::new(44, 20, 8)],
},
VersionInfo {
data_bytes: 581,
apat: [6, 26, 46, 66, 0, 0, 0],
ecc: [RsParams::new(64, 40, 4), RsParams::new(145, 115, 3), RsParams::new(36, 12, 11), RsParams::new(36, 16, 11)],
},
VersionInfo {
data_bytes: 655,
apat: [6, 26, 48, 70, 0, 0, 0],
ecc: [RsParams::new(65, 41, 5), RsParams::new(109, 87, 5), RsParams::new(36, 12, 11), RsParams::new(54, 24, 5)],
},
VersionInfo {
data_bytes: 733,
apat: [6, 26, 50, 74, 0, 0, 0],
ecc: [RsParams::new(73, 45, 7), RsParams::new(122, 98, 5), RsParams::new(45, 15, 3), RsParams::new(43, 19, 15)],
},
VersionInfo {
data_bytes: 815,
apat: [6, 30, 54, 78, 0, 0, 0],
ecc: [RsParams::new(74, 46, 10), RsParams::new(135, 107, 1), RsParams::new(42, 14, 2), RsParams::new(50, 22, 1)],
},
VersionInfo {
data_bytes: 901,
apat: [6, 30, 56, 82, 0, 0, 0],
ecc: [RsParams::new(69, 43, 9), RsParams::new(150, 120, 5), RsParams::new(42, 14, 2), RsParams::new(50, 22, 17)],
},
VersionInfo {
data_bytes: 991,
apat: [6, 30, 58, 86, 0, 0, 0],
ecc: [RsParams::new(70, 44, 3), RsParams::new(141, 113, 3), RsParams::new(39, 13, 9), RsParams::new(47, 21, 17)],
},
VersionInfo {
data_bytes: 1085,
apat: [6, 34, 62, 90, 0, 0, 0],
ecc: [RsParams::new(67, 41, 3), RsParams::new(135, 107, 3), RsParams::new(43, 15, 15), RsParams::new(54, 24, 15)],
},
VersionInfo {
data_bytes: 1156,
apat: [6, 28, 50, 72, 92, 0, 0],
ecc: [RsParams::new(68, 42, 17), RsParams::new(144, 116, 4), RsParams::new(46, 16, 19), RsParams::new(50, 22, 17)],
},
VersionInfo {
data_bytes: 1258,
apat: [6, 26, 50, 74, 98, 0, 0],
ecc: [RsParams::new(74, 46, 17), RsParams::new(139, 111, 2), RsParams::new(37, 13, 34), RsParams::new(54, 24, 7)],
},
VersionInfo {
data_bytes: 1364,
apat: [6, 30, 54, 78, 102, 0, 0],
ecc: [RsParams::new(75, 47, 4), RsParams::new(151, 121, 4), RsParams::new(45, 15, 16), RsParams::new(54, 24, 11)],
},
VersionInfo {
data_bytes: 1474,
apat: [6, 28, 54, 80, 106, 0, 0],
ecc: [RsParams::new(73, 45, 6), RsParams::new(147, 117, 6), RsParams::new(46, 16, 30), RsParams::new(54, 24, 11)],
},
VersionInfo {
data_bytes: 1588,
apat: [6, 32, 58, 84, 110, 0, 0],
ecc: [RsParams::new(75, 47, 8), RsParams::new(132, 106, 8), RsParams::new(45, 15, 22), RsParams::new(54, 24, 7)],
},
VersionInfo {
data_bytes: 1706,
apat: [6, 30, 58, 86, 114, 0, 0],
ecc: [RsParams::new(74, 46, 19), RsParams::new(142, 114, 10), RsParams::new(46, 16, 33), RsParams::new(50, 22, 28)],
},
VersionInfo {
data_bytes: 1828,
apat: [6, 34, 62, 90, 118, 0, 0],
ecc: [RsParams::new(73, 45, 22), RsParams::new(152, 122, 8), RsParams::new(45, 15, 12), RsParams::new(53, 23, 8)],
},
VersionInfo {
data_bytes: 1921,
apat: [6, 26, 50, 74, 98, 122, 0],
ecc: [RsParams::new(73, 45, 3), RsParams::new(147, 117, 3), RsParams::new(45, 15, 11), RsParams::new(54, 24, 4)],
},
VersionInfo {
data_bytes: 2051,
apat: [6, 30, 54, 78, 102, 126, 0],
ecc: [RsParams::new(73, 45, 21), RsParams::new(146, 116, 7), RsParams::new(45, 15, 19), RsParams::new(53, 23, 1)],
},
VersionInfo {
data_bytes: 2185,
apat: [6, 26, 52, 78, 104, 130, 0],
ecc: [RsParams::new(75, 47, 19), RsParams::new(145, 115, 5), RsParams::new(45, 15, 23), RsParams::new(54, 24, 15)],
},
VersionInfo {
data_bytes: 2323,
apat: [6, 30, 56, 82, 108, 134, 0],
ecc: [RsParams::new(74, 46, 2), RsParams::new(145, 115, 13), RsParams::new(45, 15, 23), RsParams::new(54, 24, 42)],
},
VersionInfo {
data_bytes: 2465,
apat: [6, 34, 60, 86, 112, 138, 0],
ecc: [RsParams::new(74, 46, 10), RsParams::new(145, 115, 17), RsParams::new(45, 15, 19), RsParams::new(54, 24, 10)],
},
VersionInfo {
data_bytes: 2611,
apat: [6, 30, 58, 86, 114, 142, 0],
ecc: [RsParams::new(74, 46, 14), RsParams::new(145, 115, 17), RsParams::new(45, 15, 11), RsParams::new(54, 24, 29)],
},
VersionInfo {
data_bytes: 2761,
apat: [6, 34, 62, 90, 118, 146, 0],
ecc: [RsParams::new(74, 46, 14), RsParams::new(145, 115, 13), RsParams::new(46, 16, 59), RsParams::new(54, 24, 44)],
},
VersionInfo {
data_bytes: 2876,
apat: [6, 30, 54, 78, 102, 126, 150],
ecc: [RsParams::new(75, 47, 12), RsParams::new(151, 121, 12), RsParams::new(45, 15, 22), RsParams::new(54, 24, 39)],
},
VersionInfo {
data_bytes: 3034,
apat: [6, 24, 50, 76, 102, 128, 154],
ecc: [RsParams::new(75, 47, 6), RsParams::new(151, 121, 6), RsParams::new(45, 15, 2), RsParams::new(54, 24, 46)],
},
VersionInfo {
data_bytes: 3196,
apat: [6, 28, 54, 80, 106, 132, 158],
ecc: [RsParams::new(74, 46, 29), RsParams::new(152, 122, 17), RsParams::new(45, 15, 24), RsParams::new(54, 24, 49)],
},
VersionInfo {
data_bytes: 3362,
apat: [6, 32, 58, 84, 110, 136, 162],
ecc: [RsParams::new(74, 46, 13), RsParams::new(152, 122, 4), RsParams::new(45, 15, 42), RsParams::new(54, 24, 48)],
},
VersionInfo {
data_bytes: 3532,
apat: [6, 26, 54, 82, 110, 138, 166],
ecc: [RsParams::new(75, 47, 40), RsParams::new(147, 117, 20), RsParams::new(45, 15, 10), RsParams::new(54, 24, 43)],
},
VersionInfo {
data_bytes: 3706,
apat: [6, 30, 58, 86, 114, 142, 170],
ecc: [RsParams::new(75, 47, 18), RsParams::new(148, 118, 19), RsParams::new(45, 15, 20), RsParams::new(54, 24, 34)],
},
];