pub struct QrCode { /* private fields */ }
Expand description
The encoded QR code symbol.
Implementations§
source§impl QrCode
impl QrCode
sourcepub fn new<D: AsRef<[u8]>>(data: D) -> QrResult<Self>
pub fn new<D: AsRef<[u8]>>(data: D) -> QrResult<Self>
Constructs a new QR code which automatically encodes the given data.
This method uses the “medium” error correction level and automatically chooses the smallest QR code.
use qr_code::QrCode;
let code = QrCode::new(b"Some data").unwrap();
Errors
Returns error if the QR code cannot be constructed, e.g. when the data is too long.
sourcepub fn with_error_correction_level<D: AsRef<[u8]>>(
data: D,
ec_level: EcLevel
) -> QrResult<Self>
pub fn with_error_correction_level<D: AsRef<[u8]>>( data: D, ec_level: EcLevel ) -> QrResult<Self>
Constructs a new QR code which automatically encodes the given data at a specific error correction level.
This method automatically chooses the smallest QR code.
use qr_code::{QrCode, EcLevel};
let code = QrCode::with_error_correction_level(b"Some data", EcLevel::H).unwrap();
Errors
Returns error if the QR code cannot be constructed, e.g. when the data is too long.
sourcepub fn with_version<D: AsRef<[u8]>>(
data: D,
version: Version,
ec_level: EcLevel
) -> QrResult<Self>
pub fn with_version<D: AsRef<[u8]>>( data: D, version: Version, ec_level: EcLevel ) -> QrResult<Self>
Constructs a new QR code for the given version and error correction level.
use qr_code::{QrCode, Version, EcLevel};
let code = QrCode::with_version(b"Some data", Version::Normal(5), EcLevel::M).unwrap();
This method can also be used to generate Micro QR code.
use qr_code::{QrCode, Version, EcLevel};
let micro_code = QrCode::with_version(b"123", Version::Micro(1), EcLevel::L).unwrap();
Errors
Returns error if the QR code cannot be constructed, e.g. when the data is too long, or when the version and error correction level are incompatible.
sourcepub fn with_bits(bits: Bits, ec_level: EcLevel) -> QrResult<Self>
pub fn with_bits(bits: Bits, ec_level: EcLevel) -> QrResult<Self>
Constructs a new QR code with encoded bits.
Use this method only if there are very special need to manipulate the raw bits before encoding. Some examples are:
- Encode data using specific character set with ECI
- Use the FNC1 modes
- Avoid the optimal segmentation algorithm
See the Bits
structure for detail.
#![allow(unused_must_use)]
use qr_code::{QrCode, Version, EcLevel};
use qr_code::bits::Bits;
let mut bits = Bits::new(Version::Normal(1));
bits.push_eci_designator(9);
bits.push_byte_data(b"\xca\xfe\xe4\xe9\xea\xe1\xf2 QR");
bits.push_terminator(EcLevel::L);
let qrcode = QrCode::with_bits(bits, EcLevel::L);
Errors
Returns error if the QR code cannot be constructed, e.g. when the bits are too long, or when the version and error correction level are incompatible.
sourcepub fn error_correction_level(&self) -> EcLevel
pub fn error_correction_level(&self) -> EcLevel
Gets the error correction level of this QR code.
sourcepub fn width(&self) -> usize
pub fn width(&self) -> usize
Gets the number of modules per side, i.e. the width of this QR code.
The width here does not contain the quiet zone paddings.
sourcepub fn max_allowed_errors(&self) -> usize
pub fn max_allowed_errors(&self) -> usize
Gets the maximum number of allowed erratic modules can be introduced before the data becomes corrupted. Note that errors should not be introduced to functional modules.
sourcepub fn is_functional(&self, x: usize, y: usize) -> bool
pub fn is_functional(&self, x: usize, y: usize) -> bool
Checks whether a module at coordinate (x, y) is a functional module or not.
sourcepub fn to_vec(&self) -> Vec<bool>
pub fn to_vec(&self) -> Vec<bool>
Converts the QR code to a vector of booleans. Each entry represents the color of the module, with “true” means dark and “false” means light.
sourcepub fn iter(&self) -> QrCodeIterator<'_> ⓘ
pub fn iter(&self) -> QrCodeIterator<'_> ⓘ
Returns an iterator over QR code vector of colors.
sourcepub fn into_colors(self) -> Vec<Color>
pub fn into_colors(self) -> Vec<Color>
Converts the QR code to a vector of colors.