#![cfg(target_os = "macos")]
use std::ffi::c_void;
use futures::executor::block_on;
use crate::macos::{PasskeyRegistrationResult, PasskeyLoginResult, begin_registration_from_rust, begin_login_from_rust};
pub fn run_registration(
window_ptr: *mut c_void,
domain: &str,
challenge: &[u8],
username: &str,
user_id: &[u8],
salt: &[u8],
) -> Result<PasskeyRegistrationResult, String> {
let fut = begin_registration_from_rust(
window_ptr,
domain,
challenge,
username,
user_id,
salt,
);
let result = block_on(fut);
result.ok_or_else(|| "Registration failed".to_string())
}
pub fn run_login(
window_ptr: *mut c_void,
domain: &str,
challenge: &[u8],
salt: &[u8],
) -> Result<PasskeyLoginResult, String> {
let fut = begin_login_from_rust(
window_ptr,
domain,
challenge,
salt,
);
let result = block_on(fut);
result.ok_or_else(|| "Login failed".to_string())
}