pub fn encode_qr(payload: &SetupPayload) -> Result<String>Expand description
Encode a SetupPayload as a Matter QR string (Matter Core Spec §5.1.3.1).
The returned string always begins with MT: followed by Matter Base38.
§Errors
Returns Error::QrRequiresVidPid if either VID or PID is None.
Returns Error::CustomFlowUnsupported for CommissioningFlow::Custom.
§Examples
use matter_commissioning::setup::{
encode_qr, parse_qr,
CommissioningFlow, Discriminator, DiscoveryCapabilities,
Passcode, SetupPayload,
};
let payload = SetupPayload {
version: 0,
vendor_id: Some(0xFFF1),
product_id: Some(0x8000),
commissioning_flow: CommissioningFlow::Standard,
discovery_capabilities: DiscoveryCapabilities::ON_NETWORK,
discriminator: Discriminator::new(0xF00).unwrap(),
passcode: Passcode::new(20_202_021).unwrap(),
};
let qr = encode_qr(&payload).unwrap();
assert!(qr.starts_with("MT:"));
assert_eq!(parse_qr(&qr).unwrap(), payload);