use latexsnipper_foundation::Result;
use latexsnipper_tensor::Tensor;
pub trait InferenceSession: Send + Sync {
fn run(&self, inputs: &[Tensor]) -> Result<Vec<Tensor>>;
fn input_names(&self) -> Vec<String>;
fn output_names(&self) -> Vec<String>;
fn get_character_list(&self) -> Option<Vec<String>> {
None
}
fn release(&mut self);
}
impl InferenceSession for Box<dyn InferenceSession> {
fn run(&self, inputs: &[Tensor]) -> Result<Vec<Tensor>> {
(**self).run(inputs)
}
fn input_names(&self) -> Vec<String> {
(**self).input_names()
}
fn output_names(&self) -> Vec<String> {
(**self).output_names()
}
fn get_character_list(&self) -> Option<Vec<String>> {
(**self).get_character_list()
}
fn release(&mut self) {
(**self).release()
}
}