Skip to main content

lamco_rdp/
lib.rs

1//! # lamco-rdp
2//!
3//! RDP protocol implementations and IronRDP extensions for Rust.
4//!
5//! This meta-crate provides convenient access to the lamco-rdp family of crates:
6//!
7//! - [`lamco_rdp_input`] - RDP input event translation (keyboard scancodes, mouse coordinates)
8//! - [`lamco_clipboard_core`] - Protocol-agnostic clipboard utilities (format conversion, loop detection)
9//! - `lamco_rdp_clipboard` - IronRDP clipboard integration (requires `clipboard-rdp` feature)
10//!
11//! ## Feature Flags
12//!
13//! - `input` (default) - Include input translation
14//! - `clipboard-core` (default) - Include clipboard core utilities
15//! - `clipboard-rdp` - Include IronRDP clipboard integration
16//! - `full` - Enable all features
17//!
18//! ## Quick Start
19//!
20//! ```toml
21//! [dependencies]
22//! lamco-rdp = "0.1"
23//! ```
24//!
25//! Or select specific features:
26//!
27//! ```toml
28//! [dependencies]
29//! lamco-rdp = { version = "0.1", default-features = false, features = ["input"] }
30//! ```
31
32#![cfg_attr(docsrs, feature(doc_cfg))]
33
34#[cfg(feature = "input")]
35pub use lamco_rdp_input as input;
36
37#[cfg(feature = "clipboard-core")]
38pub use lamco_clipboard_core as clipboard_core;
39
40#[cfg(feature = "clipboard-rdp")]
41pub use lamco_rdp_clipboard as clipboard_rdp;
42
43/// Prelude module for convenient imports
44pub mod prelude {
45    #[cfg(feature = "input")]
46    pub use lamco_rdp_input::{InputTranslator, KeyModifiers, LinuxInputEvent, MouseButton, RdpInputEvent};
47
48    #[cfg(feature = "clipboard-core")]
49    pub use lamco_clipboard_core::{ClipboardSink, FormatConverter, LoopDetector};
50}