rustup.
This commit is contained in:
parent
96e7894f9f
commit
18f9499918
|
@ -758,7 +758,7 @@ impl Bits {
|
|||
where I: Iterator<Item=Segment>
|
||||
{
|
||||
for segment in segments_iter {
|
||||
let slice = data.slice(segment.begin, segment.end);
|
||||
let slice = &data[segment.begin .. segment.end];
|
||||
try!(match segment.mode {
|
||||
Mode::Numeric => self.push_numeric_data(slice),
|
||||
Mode::Alphanumeric => self.push_alphanumeric_data(slice),
|
||||
|
|
|
@ -20,7 +20,7 @@ use types::{Version, EcLevel};
|
|||
//{{{ Modules
|
||||
|
||||
/// The color of a module (pixel) in the QR code.
|
||||
#[derive(PartialEq, Eq, Clone, Copy, Show)]
|
||||
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
|
||||
pub enum Module {
|
||||
/// The module is empty.
|
||||
Empty,
|
||||
|
@ -177,8 +177,8 @@ mod basic_canvas_tests {
|
|||
fn test_debug_str() {
|
||||
let mut c = Canvas::new(Version::Normal(1), EcLevel::L);
|
||||
|
||||
for i in 3 .. 20 {
|
||||
for j in 3 .. 20 {
|
||||
for i in 3i16 .. 20 {
|
||||
for j in 3i16 .. 20 {
|
||||
c.put(i, j, match ((i * 3) ^ j) % 5 {
|
||||
0 => Module::Empty,
|
||||
1 => Module::Light,
|
||||
|
@ -1372,7 +1372,7 @@ mod draw_codewords_test {
|
|||
|
||||
/// The mask patterns. Since QR code and Micro QR code do not use the same
|
||||
/// pattern number, we name them according to their shape instead of the number.
|
||||
#[derive(Show, Copy)]
|
||||
#[derive(Debug, Copy)]
|
||||
pub enum MaskPattern {
|
||||
/// QR code pattern 000: `(x + y) % 2 == 0`.
|
||||
Checkerboard = 0b000,
|
||||
|
@ -1811,7 +1811,7 @@ mod penalty_tests {
|
|||
];
|
||||
|
||||
let mut c = Canvas::new(Version::Micro(4), EcLevel::Q);
|
||||
for i in 0 .. 17 {
|
||||
for i in 0i16 .. 17 {
|
||||
c.put(i, -1, HORIZONTAL_SIDE[i as usize]);
|
||||
c.put(-1, i, VERTICAL_SIDE[i as usize]);
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ pub fn create_error_correction_code(data: &[u8], ec_code_size: usize) -> Vec<u8>
|
|||
}
|
||||
|
||||
let log_lead_coeff = LOG_TABLE[lead_coeff] as usize;
|
||||
for (u, v) in res.slice_from_mut(i+1).iter_mut().zip(log_den.iter()) {
|
||||
for (u, v) in res[i+1 ..].iter_mut().zip(log_den.iter()) {
|
||||
*u ^= EXP_TABLE[((*v as usize + log_lead_coeff) % 255) as usize];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ use test::Bencher;
|
|||
//{{{ Segment
|
||||
|
||||
/// A segment of data committed to an encoding mode.
|
||||
#[derive(PartialEq, Eq, Show, Copy, Clone)]
|
||||
#[derive(PartialEq, Eq, Debug, Copy, Clone)]
|
||||
pub struct Segment {
|
||||
/// The encoding mode of the segment of data.
|
||||
pub mode: Mode,
|
||||
|
|
22
src/types.rs
22
src/types.rs
|
@ -2,13 +2,14 @@
|
|||
|
||||
use std::default::Default;
|
||||
use std::cmp::{PartialOrd, Ordering};
|
||||
use std::fmt::{Display, Formatter, Error};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//{{{ QrResult
|
||||
|
||||
/// `QrError` encodes the error encountered when generating a QR code.
|
||||
#[unstable]
|
||||
#[derive(Show, PartialEq, Eq, Copy, Clone)]
|
||||
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
|
||||
pub enum QrError {
|
||||
/// The data is too long to encode into a QR code for the given version.
|
||||
DataTooLong,
|
||||
|
@ -28,6 +29,19 @@ pub enum QrError {
|
|||
InvalidCharacter,
|
||||
}
|
||||
|
||||
impl Display for QrError {
|
||||
fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error> {
|
||||
let msg = match *self {
|
||||
QrError::DataTooLong => "data too long",
|
||||
QrError::InvalidVersion => "invalid version",
|
||||
QrError::UnsupportedCharacterSet => "unsupported character set",
|
||||
QrError::InvalidEciDesignator => "invalid ECI designator",
|
||||
QrError::InvalidCharacter => "invalid character",
|
||||
};
|
||||
fmt.write_str(msg)
|
||||
}
|
||||
}
|
||||
|
||||
/// `QrResult` is a convenient alias for a QR code generation result.
|
||||
#[stable]
|
||||
pub type QrResult<T> = Result<T, QrError>;
|
||||
|
@ -38,7 +52,7 @@ pub type QrResult<T> = Result<T, QrError>;
|
|||
|
||||
/// The error correction level. It allows the original information be recovered
|
||||
/// even if parts of the code is damaged.
|
||||
#[derive(Show, PartialEq, Eq, Copy, Clone, PartialOrd, Ord)]
|
||||
#[derive(Debug, PartialEq, Eq, Copy, Clone, PartialOrd, Ord)]
|
||||
#[unstable]
|
||||
pub enum EcLevel {
|
||||
/// Low error correction. Allows up to 7% of wrong blocks.
|
||||
|
@ -65,7 +79,7 @@ pub enum EcLevel {
|
|||
/// The smallest version is `Version::Normal(1)` of size 21×21, and the largest
|
||||
/// is `Version::Normal(40)` of size 177×177.
|
||||
#[unstable]
|
||||
#[derive(Show, PartialEq, Eq, Copy, Clone)]
|
||||
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
|
||||
pub enum Version {
|
||||
/// A normal QR code version. The parameter should be between 1 and 40.
|
||||
Normal(i16),
|
||||
|
@ -138,7 +152,7 @@ impl Version {
|
|||
|
||||
/// The mode indicator, which specifies the character set of the encoded data.
|
||||
#[unstable]
|
||||
#[derive(Show, PartialEq, Eq, Copy, Clone)]
|
||||
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
|
||||
pub enum Mode {
|
||||
/// The data contains only characters 0 to 9.
|
||||
Numeric,
|
||||
|
|
Loading…
Reference in a new issue