FIX: Don not clone Locales and Languages, pass them by reference

This commit is contained in:
Nicolás Hatcher
2025-12-14 16:55:14 +01:00
parent ffe5d1a158
commit 96a5482e01
84 changed files with 308 additions and 251 deletions

View File

@@ -7,7 +7,7 @@ use crate::export::save_to_icalc;
use crate::import::load_from_icalc;
use crate::{export::save_to_xlsx, import::load_from_xlsx};
pub fn new_empty_model() -> Model {
pub fn new_empty_model<'a>() -> Model<'a> {
Model::new_empty("model", "en", "UTC", "en").unwrap()
}

View File

@@ -140,18 +140,18 @@ pub fn load_from_xlsx_bytes(
}
/// Loads a [Model] from an xlsx file
pub fn load_from_xlsx(
pub fn load_from_xlsx<'a>(
file_name: &str,
locale: &str,
tz: &str,
language: &str,
) -> Result<Model, XlsxError> {
language: &'a str,
) -> Result<Model<'a>, XlsxError> {
let workbook = load_from_excel(file_name, locale, tz)?;
Model::from_workbook(workbook, language).map_err(XlsxError::Workbook)
}
/// Loads a [Model] from an `ic` file (a file in the IronCalc internal representation)
pub fn load_from_icalc(file_name: &str, language_id: &str) -> Result<Model, XlsxError> {
pub fn load_from_icalc<'a>(file_name: &str, language_id: &'a str) -> Result<Model<'a>, XlsxError> {
let contents = fs::read(file_name)
.map_err(|e| XlsxError::IO(format!("Could not extract workbook name: {e}")))?;
let workbook: Workbook = bitcode::decode(&contents)