#![forbid(unsafe_code)]
pub mod attestation;
pub mod clusters;
#[cfg(feature = "driver")]
pub mod driver;
pub mod error;
#[cfg(feature = "tracing")]
pub(crate) mod hexdump {
use std::fmt::Write;
pub(crate) fn hex(bytes: &[u8]) -> String {
bytes
.iter()
.fold(String::with_capacity(bytes.len() * 2), |mut out, b| {
let _ = write!(out, "{b:02x}");
out
})
}
}
pub use matter_interaction as im;
pub mod noc;
pub mod setup;
pub mod state_machine;
#[cfg(feature = "test-support")]
pub mod test_support;
pub mod thread_dataset;
#[cfg(feature = "wiretrace")]
pub mod wiretrace;
pub use setup::{
encode_manual_code, encode_qr, parse_manual_code, parse_qr, CommissioningFlow,
DiscoveryCapabilities, Discriminator, Error as SetupError, Passcode, SetupPayload,
};
pub use attestation::{
extract_attestation_elements_fields, verify_attestation_response,
verify_certification_declaration, verify_certification_declaration_with_paa, verify_chain,
verify_dac_signed_elements, AttestationElementsFields, AttestationError, AttestationResponse,
CdSigningRoots, ChainVerification, Dac, Paa, PaaTrustStore, Pai, ProductId, VendorId,
};
pub use noc::{
decode_attestation_response, decode_certificate_chain_response, decode_csr_response,
decode_noc_response, encode_add_noc, encode_add_trusted_root, encode_attestation_request,
encode_certificate_chain_request, encode_csr_request, encode_update_noc, issue_icac, issue_noc,
parse_and_verify_csr, parse_nocsr, verify_csr_response, CertChainType,
CertificateChainResponse, CsrResponse, FabricRecord, NocError, NocResponse, NocRng,
NocsrElements, ParsedCsr, SystemNocRng, VerifiedCsr,
};
pub use clusters::network_commissioning::{
decode_connect_network_response, decode_feature_map, decode_network_config_response,
encode_add_or_update_wifi_network, encode_connect_network, remediation_for,
ConnectNetworkResponse, NetworkCommissioningFeature, NetworkConfigResponse,
};
pub use im::{
build_invoke_request, build_read_request, parse_invoke_response, parse_report_data,
AttributePath, CommandPath, ImError, ImStatus, InvokeResponse, ReportData, IM_REVISION,
};
#[cfg(feature = "__test_shortcuts")]
pub use state_machine::TestStateSeeds;
pub use state_machine::{
Action, CommissionedFabric, Commissioner, CommissionerConfig, CommissioningError, Expectation,
NetworkCredentials, NetworkKind, RemediationHint, SessionContext, Stage, WiFiCredentials,
};
pub use thread_dataset::{ThreadDataset, ThreadDatasetError};
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
struct ReadmeDoctests;