use crate::{BrowserInfoError, BrowserType};
use active_win_pos_rs::ActiveWindow;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ExtractedPage {
pub url: String,
pub title: Option<String>,
}
pub fn extract_url(
window: &ActiveWindow,
browser_type: &BrowserType,
) -> Result<String, BrowserInfoError> {
extract_page(window, browser_type).map(|page| page.url)
}
pub fn extract_page(
window: &ActiveWindow,
browser_type: &BrowserType,
) -> Result<ExtractedPage, BrowserInfoError> {
#[cfg(target_os = "windows")]
{
crate::platform::windows::extract_page(window, browser_type)
}
#[cfg(target_os = "macos")]
{
crate::platform::macos::extract_page(window, browser_type)
}
#[cfg(target_os = "linux")]
{
let _ = (window, browser_type); Err(BrowserInfoError::PlatformError(
"Linux not yet implemented".to_string(),
))
}
#[cfg(not(any(target_os = "windows", target_os = "macos", target_os = "linux")))]
{
let _ = (window, browser_type); Err(BrowserInfoError::PlatformError(
"Unsupported platform".to_string(),
))
}
}