Crate lamco_clipboard_core

Crate lamco_clipboard_core 

Source
Expand description

§lamco-clipboard-core

Protocol-agnostic clipboard utilities for Rust.

This crate provides core clipboard functionality that can be used with any clipboard backend (Portal, X11, headless, etc.):

§Quick Start

use lamco_clipboard_core::{ClipboardSink, FormatConverter, LoopDetector};
use lamco_clipboard_core::formats::{ClipboardFormat, mime_to_rdp_formats};

// Convert MIME types to RDP formats
let formats = mime_to_rdp_formats(&["text/plain", "text/html"]);

// Check for clipboard loops
let mut detector = LoopDetector::new();
if !detector.would_cause_loop(&formats) {
    // Safe to sync
}

§Feature Flags

  • image - Enable image format conversion (PNG, JPEG, BMP ↔ DIB)

§Architecture

The ClipboardSink trait provides an async interface for clipboard operations. Implementations handle the actual clipboard access (Portal D-Bus, X11, etc.) while this crate handles format conversion and loop detection.

Re-exports§

pub use formats::build_file_group_descriptor_w;
pub use formats::ClipboardFormat;
pub use formats::FileDescriptor;
pub use formats::FileDescriptorFlags;
pub use formats::FormatConverter;
pub use loop_detector::ClipboardSource;
pub use loop_detector::LoopDetectionConfig;
pub use loop_detector::LoopDetector;

Modules§

formats
Clipboard format conversion utilities.
imageimage
Image format conversion utilities.
loop_detector
Loop detection for clipboard synchronization.
prelude
Prelude module for convenient imports
sanitize
Cross-platform sanitization utilities for clipboard data.

Structs§

ClipboardChange
A clipboard change notification
ClipboardChangeReceiver
Receiver for clipboard change notifications.
FileInfo
Information about a file in the clipboard
TransferConfig
Configuration for the transfer engine
TransferEngine
Handles chunked transfers of clipboard data.
TransferProgress
Progress information for a transfer

Enums§

ClipboardError
Errors that can occur during clipboard operations
TransferState
State of a transfer operation

Constants§

DEFAULT_CHUNK_SIZE
Default chunk size: 64KB
DEFAULT_MAX_SIZE
Default maximum data size: 16MB
DEFAULT_TIMEOUT_MS
Default timeout: 30 seconds

Traits§

ClipboardChangeReceiverInner
Inner trait for clipboard change receivers (object-safe)
ClipboardSink
Abstract clipboard backend interface.

Type Aliases§

ClipboardResult
Result type for clipboard operations