// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

use serde::{Deserialize, Serialize};
use std::path::MAIN_SEPARATOR_STR;

use crate::metadata::{*};
mod metadata;

// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}! You've been greeted from Rust!", name)
}

fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![greet, save])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

#[tauri::command]
fn save(metadata: Metadata, path: String) -> String {
    let file_path: String;
    if path.ends_with(MAIN_SEPARATOR_STR) {
        file_path = path + "ComicInfo.xml";
    }
    else {
        file_path = path + MAIN_SEPARATOR_STR + "ComicInfo.xml";
    }
    metadata.save_to_xml(&file_path);
    file_path
}