clipmem 0.2.6

macOS clipboard memory backed by SQLite and searchable from OpenClaw
Documentation
use anyhow::{bail, Result};

use crate::model::{ClipboardItem, ClipboardSnapshot};
use crate::platform::{RestorePlanItem, RestorePlanRepresentation, RestoreReport};

pub fn current_change_count() -> Result<i64> {
    bail!("clipboard capture is only supported on macOS")
}

pub fn capture_snapshot() -> Result<ClipboardSnapshot> {
    bail!("clipboard capture is only supported on macOS")
}

pub(crate) fn build_restore_plan(items: &[ClipboardItem]) -> Vec<RestorePlanItem> {
    items
        .iter()
        .map(|item| {
            RestorePlanItem::new(
                item.item_index(),
                item.representations()
                    .iter()
                    .map(|representation| {
                        RestorePlanRepresentation::new(
                            representation.uti().to_string(),
                            representation.raw_bytes().to_vec(),
                        )
                    })
                    .collect(),
            )
        })
        .collect()
}

pub(crate) fn restore_items(_items: &[ClipboardItem]) -> Result<RestoreReport> {
    bail!("clipboard restore is only supported on macOS")
}