Struct qrcode_generator::QrSegment
source · pub struct QrSegment { /* private fields */ }
Expand description
A segment of character/binary/control data in a QR Code symbol.
Instances of this struct are immutable.
The mid-level way to create a segment is to take the payload data
and call a static factory function such as QrSegment::make_numeric()
.
The low-level way to create a segment is to custom-make the bit buffer
and call the QrSegment::new()
constructor with appropriate values.
This segment struct imposes no length restrictions, but QR Codes have restrictions. Even in the most favorable conditions, a QR Code can only hold 7089 characters of data. Any segment longer than this is meaningless for the purpose of generating QR Codes.
Implementations§
source§impl QrSegment
impl QrSegment
sourcepub fn make_bytes(data: &[u8]) -> QrSegment
pub fn make_bytes(data: &[u8]) -> QrSegment
Returns a segment representing the given binary data encoded in byte mode.
All input byte slices are acceptable.
Any text string can be converted to UTF-8 bytes and encoded as a byte mode segment.
sourcepub fn make_numeric(text: &str) -> QrSegment
pub fn make_numeric(text: &str) -> QrSegment
Returns a segment representing the given string of decimal digits encoded in numeric mode.
Panics if the string contains non-digit characters.
sourcepub fn make_alphanumeric(text: &str) -> QrSegment
pub fn make_alphanumeric(text: &str) -> QrSegment
Returns a segment representing the given text string encoded in alphanumeric mode.
The characters allowed are: 0 to 9, A to Z (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
Panics if the string contains non-encodable characters.
sourcepub fn make_segments(text: &str) -> Vec<QrSegment, Global>
pub fn make_segments(text: &str) -> Vec<QrSegment, Global>
Returns a list of zero or more segments to represent the given Unicode text string.
The result may use various segment modes and switch modes to optimize the length of the bit stream.
sourcepub fn make_eci(assignval: u32) -> QrSegment
pub fn make_eci(assignval: u32) -> QrSegment
Returns a segment representing an Extended Channel Interpretation (ECI) designator with the given assignment value.
sourcepub fn new(
mode: QrSegmentMode,
numchars: usize,
data: Vec<bool, Global>
) -> QrSegment
pub fn new( mode: QrSegmentMode, numchars: usize, data: Vec<bool, Global> ) -> QrSegment
Creates a new QR Code segment with the given attributes and data.
The character count (numchars) must agree with the mode and the bit buffer length, but the constraint isn’t checked.
sourcepub fn mode(&self) -> QrSegmentMode
pub fn mode(&self) -> QrSegmentMode
Returns the mode indicator of this segment.
sourcepub fn is_numeric(text: &str) -> bool
pub fn is_numeric(text: &str) -> bool
Tests whether the given string can be encoded as a segment in numeric mode.
A string is encodable iff each character is in the range 0 to 9.
sourcepub fn is_alphanumeric(text: &str) -> bool
pub fn is_alphanumeric(text: &str) -> bool
Tests whether the given string can be encoded as a segment in alphanumeric mode.
A string is encodable iff each character is in the following set: 0 to 9, A to Z (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.