#[path = "support.rs"]
mod support;
use qrc::{set_encoding_format, QRCode};
fn main() {
support::header("qrc -- encoding");
support::task_with_output("Inspect default encoding format", || {
let qr = QRCode::from_string("Hello, world!".to_string());
vec![
format!("Format: {}", qr.get_encoding_format()),
format!("Data: {} bytes", qr.data.len()),
]
});
support::task_with_output("Set encoding to utf-8 (supported)", || {
let qr = QRCode::from_string("Bonjour le monde!".to_string());
match qr.set_encoding_format("utf-8") {
Ok(updated) => vec![
format!("Format: {}", updated.get_encoding_format()),
format!("Status: accepted"),
],
Err(e) => vec![format!("Error: {e}")],
}
});
support::task_with_output("Set encoding via set_encoding_format! macro", || {
let qr = QRCode::new(b"data".to_vec());
match set_encoding_format!(qr, "utf-8") {
Ok(updated) => vec![
format!("Macro: set_encoding_format!(qr, \"utf-8\")"),
format!("Format: {}", updated.get_encoding_format()),
],
Err(e) => vec![format!("Error: {e}")],
}
});
support::task_result("Reject unsupported encoding (latin-1)", || {
let qr = QRCode::from_string("Test".to_string());
qr.set_encoding_format("latin-1")
})
.ok();
support::summary(4);
}