// SPDX-License-Identifier: MPL-2.0
// Copyright (C) 2026 Petr Hodina <petr.hodina@protonmail.com>

//! Native Linux client for the Qualcomm SLPI Sensors Service Container,
//! mirroring the wire protocol of [libssc](https://codeberg.org/DylanVanAssche/libssc).
//!
//! Stack:
//!
//! ```text
//! +---------------------+
//! | Client / Stream     | high-level subscribe + decode
//! +---------------------+
//! | SscClientRequest /  | libssc-style protobuf envelopes
//! | SscClientResponse   |
//! +---------------------+
//! | QMI control msg     | msg_id 0x20 (req/resp), 0x21/0x22 (ind),
//! | + libssc TLV layout |   ARRAY TLVs include inner-length prefix
//! +---------------------+
//! | AF_QIPCRTR socket   | service id 400 = sns_client_api_v01
//! +---------------------+
//! ```
//!
//! ## Caveats
//!
//! - Kernel `CONFIG_QRTR=y`, SLPI firmware loaded, `pd-mapper` running.
//! - `qrtr-ns` must be running so service-lookup resolves.
//! - Permission to open `AF_QIPCRTR` (typically root or a udev rule).

pub mod client;
pub mod error;
pub mod pb;
pub mod qmi;
pub mod qrtr;
pub mod suid;

pub use client::{AttrValue, Attributes, Client, Sample, SensorInfo, SensorKind, Stream};
pub use error::{Error, Result};
pub use pb::Uid;
