pub fn encode_manual_code(payload: &SetupPayload) -> StringExpand description
Encode a SetupPayload as a manual pairing code (Matter Core Spec §5.1.4).
Emits the 21-digit form if vendor_id and product_id are both
Some, otherwise the 11-digit form. The final digit is always the
Verhoeff check digit.
§Examples
use matter_commissioning::setup::{
encode_manual_code, parse_manual_code,
CommissioningFlow, Discriminator, DiscoveryCapabilities,
Passcode, SetupPayload,
};
let payload = SetupPayload {
version: 0,
vendor_id: None,
product_id: None,
commissioning_flow: CommissioningFlow::Standard,
discovery_capabilities: DiscoveryCapabilities::empty(),
discriminator: Discriminator::new(0xF00).unwrap(),
passcode: Passcode::new(20_202_021).unwrap(),
};
let code = encode_manual_code(&payload);
assert_eq!(code.len(), 11);
assert_eq!(parse_manual_code(&code).unwrap(), payload);