use anyhow::{Context, Result};
use arboard::Clipboard;
use tracing::debug;
pub fn copy_to_clipboard(text: &str) -> Result<()> {
debug!(len = text.len(), "Copying to clipboard");
let mut clipboard =
Clipboard::new().context("Failed to access clipboard. Ensure a display is available.")?;
clipboard
.set_text(text)
.context("Failed to set clipboard content")?;
debug!("Text copied to clipboard");
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[ignore = "Requires display environment"]
fn test_copy_to_clipboard() {
let result = copy_to_clipboard("test text");
assert!(result.is_ok());
}
#[test]
#[ignore = "Requires display environment"]
fn test_copy_empty_string() {
let result = copy_to_clipboard("");
assert!(result.is_ok());
}
}