///|
pub(all) suberror ClipboardError {
  NotAvailable
  PermissionDenied
  BackendFailure(String)
} derive(Show, Eq)

///|
#cfg(any(target="js", target="native"))
pub async fn read_text_async() -> String raise ClipboardError {
  read_text_async_impl()
}

///|
#cfg(any(target="js", target="native"))
pub async fn write_text_async(text : String) -> Unit raise ClipboardError {
  write_text_async_impl(text)
}

///|
#cfg(target="native")
pub fn read_text() -> String raise ClipboardError {
  read_text_sync_impl()
}

///|
#cfg(target="native")
pub fn write_text(text : String) -> Unit raise ClipboardError {
  write_text_sync_impl(text)
}