pub trait SessionRuntime {
type Handle;
// Required methods
fn open(&self, workbook_path: &Path) -> Result<Self::Handle>;
fn apply_edits(
&self,
handle: &Self::Handle,
sheet_name: &str,
edits: &[CellEdit],
) -> Result<()>;
fn recalculate(
&self,
handle: &Self::Handle,
timeout_ms: Option<u64>,
) -> Result<()>;
fn save_as(
&self,
handle: &Self::Handle,
output_path: &Path,
) -> Result<PathBuf>;
}