[][src]Struct qrcode::bits::Bits

pub struct Bits { /* fields omitted */ }

The Bits structure stores the encoded data for a QR code.

Methods

impl Bits[src]

pub fn new(version: Version) -> Self[src]

Constructs a new, empty bits structure.

pub fn into_bytes(self) -> Vec<u8>[src]

Convert the bits into a bytes vector.

pub fn len(&self) -> usize[src]

Total number of bits currently pushed.

pub fn is_empty(&self) -> bool[src]

Whether there are any bits pushed.

pub fn max_len(&self, ec_level: EcLevel) -> QrResult<usize>[src]

The maximum number of bits allowed by the provided QR code version and error correction level.

pub fn version(&self) -> Version[src]

Version of the QR code.

impl Bits[src]

pub fn push_mode_indicator(&mut self, mode: ExtendedMode) -> QrResult<()>[src]

Push the mode indicator to the end of the bits.

If the mode is not supported in the provided version, this method returns Err(QrError::UnsupportedCharacterSet).

impl Bits[src]

pub fn push_eci_designator(&mut self, eci_designator: u32) -> QrResult<()>[src]

Push an ECI (Extended Channel Interpretation) designator to the bits.

An ECI designator is a 6-digit number to specify the character set of the following binary data. After calling this method, one could call .push_byte_data() or similar methods to insert the actual data, e.g.

#![allow(unused_must_use)]

use qrcode::bits::Bits;
use qrcode::types::Version;

let mut bits = Bits::new(Version::Normal(1));
bits.push_eci_designator(9); // 9 = ISO-8859-7 (Greek).
bits.push_byte_data(b"\xa1\xa2\xa3\xa4\xa5"); // ΑΒΓΔΕ

The full list of ECI designator values can be found from http://strokescribe.com/en/ECI.html. Some example values are:

ECI #Character set
3ISO-8859-1 (Western European)
20Shift JIS (Japanese)
23Windows 1252 (Latin 1) (Western European)
25UTF-16 Big Endian
26UTF-8
28Big 5 (Traditional Chinese)
29GB-18030 (Simplified Chinese)
30EUC-KR (Korean)

If the QR code version does not support ECI, this method will return Err(QrError::UnsupportedCharacterSet).

If the designator is outside of the expected range, this method will return Err(QrError::InvalidECIDesignator).

impl Bits[src]

pub fn push_numeric_data(&mut self, data: &[u8]) -> QrResult<()>[src]

Encodes a numeric string to the bits.

The data should only contain the characters 0 to 9.

impl Bits[src]

pub fn push_alphanumeric_data(&mut self, data: &[u8]) -> QrResult<()>[src]

Encodes an alphanumeric string to the bits.

The data should only contain the charaters A to Z (excluding lowercase), 0 to 9, space, $, %, *, +, -, ., / or :.

impl Bits[src]

pub fn push_byte_data(&mut self, data: &[u8]) -> QrResult<()>[src]

Encodes 8-bit byte data to the bits.

impl Bits[src]

pub fn push_kanji_data(&mut self, data: &[u8]) -> QrResult<()>[src]

Encodes Shift JIS double-byte data to the bits.

impl Bits[src]

pub fn push_fnc1_first_position(&mut self) -> QrResult<()>[src]

Encodes an indicator that the following data are formatted according to the UCC/EAN Application Identifiers standard.

#![allow(unused_must_use)]

use qrcode::bits::Bits;
use qrcode::types::Version;

let mut bits = Bits::new(Version::Normal(1));
bits.push_fnc1_first_position();
bits.push_numeric_data(b"01049123451234591597033130128");
bits.push_alphanumeric_data(b"%10ABC123");

In QR code, the character % is used as the data field separator (0x1D).

pub fn push_fnc1_second_position(
    &mut self,
    application_indicator: u8
) -> QrResult<()>
[src]

Encodes an indicator that the following data are formatted in accordance with specific industry or application specifications previously agreed with AIM International.

#![allow(unused_must_use)]

use qrcode::bits::Bits;
use qrcode::types::Version;

let mut bits = Bits::new(Version::Normal(1));
bits.push_fnc1_second_position(37);
bits.push_alphanumeric_data(b"AA1234BBB112");
bits.push_byte_data(b"text text text text\r");

If the application indicator is a single Latin alphabet (a–z / A–Z), please pass in its ASCII value + 100:

This example is not tested
bits.push_fnc1_second_position(b'A' + 100);

impl Bits[src]

pub fn push_terminator(&mut self, ec_level: EcLevel) -> QrResult<()>[src]

Pushes the ending bits to indicate no more data.

impl Bits[src]

pub fn push_segments<I>(
    &mut self,
    data: &[u8],
    segments_iter: I
) -> QrResult<()> where
    I: Iterator<Item = Segment>, 
[src]

Push a segmented data to the bits, and then terminate it.

pub fn push_optimal_data(&mut self, data: &[u8]) -> QrResult<()>[src]

Pushes the data the bits, using the optimal encoding.

Auto Trait Implementations

impl Send for Bits

impl Unpin for Bits

impl Sync for Bits

impl UnwindSafe for Bits

impl RefUnwindSafe for Bits

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]