Skip to main content

par_term/platform/
mod.rs

1//! Platform abstraction layer for par-term.
2//!
3//! This module centralises the platform-specific behaviour that would otherwise be
4//! scattered across the codebase as inline `#[cfg(target_os = ...)]` blocks.
5//!
6//! # Conventions
7//!
8//! - Every public function in this module has a single, consistent cross-platform
9//!   signature.  The platform branching is contained *inside* each function body.
10//! - Consumers import `crate::platform` and call the function directly — no
11//!   `#[cfg]` attributes are required at the call site.
12//!
13//! # Contents
14//!
15//! | Function | Description |
16//! |---|---|
17//! | [`deliver_desktop_notification`] | Send a native desktop notification |
18//! | [`deliver_desktop_notification_request`] | Send a notification with identity/click-token support |
19//! | [`drain_notification_clicks`] | Non-blocking drain of notification click tokens |
20//! | [`primary_modifier`] | Whether the platform's "primary" modifier key is held |
21
22mod modifiers;
23mod notify;
24#[cfg(target_os = "macos")]
25mod notify_macos;
26
27pub use modifiers::{primary_modifier, primary_modifier_with_shift};
28pub use notify::{
29    NotificationRequest, NotificationUrgency, deliver_desktop_notification,
30    deliver_desktop_notification_request, drain_notification_clicks, escape_for_applescript,
31};