pub struct SharedCapabilities { /* private fields */ }Expand description
Wait-free shared terminal capabilities for concurrent read/write.
Wraps TerminalCapabilities in an [ArcSwapStore] so that the render
thread can read capabilities without locking while the main thread updates
them on terminal reconfiguration or resize.
§Example
use ftui_core::terminal_capabilities::{TerminalCapabilities, SharedCapabilities};
let shared = SharedCapabilities::new(TerminalCapabilities::modern());
assert!(shared.load().true_color);
// Update from main thread (e.g., after re-detection).
shared.store(TerminalCapabilities::dumb());
assert!(!shared.load().true_color);Implementations§
Sourcepub fn new(caps: TerminalCapabilities) -> Self
pub fn new(caps: TerminalCapabilities) -> Self
Create shared capabilities from an initial detection.
Sourcepub fn load(&self) -> TerminalCapabilities
pub fn load(&self) -> TerminalCapabilities
Wait-free read of current capabilities.
Sourcepub fn store(&self, caps: TerminalCapabilities)
pub fn store(&self, caps: TerminalCapabilities)
Atomically replace capabilities (e.g., after re-detection).
Auto Trait Implementations§
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more