edit-xlsx 0.4.4

A quick and easy-to-use Rust library for Excel file editing.
Documentation
use crate::api::cell::location::{Location, LocationRange};

#[derive(Clone, Debug, Default)]
pub(crate) struct Formula {
    pub(crate) formula: String,
    pub(crate) formula_type: Option<String>,
    pub(crate) si: Option<i32>,
    pub(crate) formula_ref: Option<String>,
}

impl Formula {
    pub(crate) fn new(formula_content: &str) -> Formula {
        Formula {
            formula: formula_content.to_string(),
            formula_type: None,
            si: None,
            formula_ref: None,
        }
    }

    pub(crate) fn new_array_formula<L: Location>(formula_content: &str, loc: &L) -> Formula {
        Formula {
            formula: formula_content.to_string(),
            formula_type: Some("array".to_string()),
            si: None,
            formula_ref: Some(loc.to_ref()),
        }
    }

    pub(crate) fn new_array_formula_by_range<L: LocationRange>(formula_content: &str, loc_range: &L) -> Formula {
        Formula {
            formula: formula_content.to_string(),
            formula_type: Some("array".to_string()),
            si: None,
            formula_ref: Some(loc_range.to_range_ref()),
        }
    }
}