1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Printer connection types and traits
//!
//! This module provides connection abstractions for communicating with Brother QL printers
//! via different transport methods.
//!
//! # Connection Types
//!
//! - [`UsbConnection`] - Direct USB communication (requires `usb` feature)
//! - [`KernelConnection`] - Uses Linux kernel USB printer driver (no features required)
//!
//! All connection types implement the [`PrinterConnection`] trait, which provides
//! high-level methods like [`print()`](PrinterConnection::print) and
//! [`get_status()`](PrinterConnection::get_status).
//!
//! # Choosing a Connection Type
//!
//! **Use [`UsbConnection`] when:**
//! - You need cross-platform support (Windows, macOS, Linux)
//! - You want full control over USB communication
//! - You need detailed device enumeration
//!
//! **Use [`KernelConnection`] when:**
//! - You're on Linux and want minimal dependencies
//! - The kernel USB printer driver (`usblp`) is already loaded
//! - You want to avoid external USB library dependencies
//!
//! # Future
//!
//! Network connection support is planned for future releases.
// Re-export the trait
pub use PrinterConnection;
// Re-export USB types
pub use ;
// Re-export kernel types
pub use KernelConnection;