pub mod onnx;
pub mod tflite;
#[cfg(feature = "coreml")]
pub mod coreml;
pub use onnx::{ExecutionProvider, ModelMetadata, OnnxModel, SessionConfig};
#[cfg(not(feature = "tflite"))]
pub use tflite::{Delegate, QuantizationParams, TensorDataType, TensorInfo, TfLiteConfig};
#[cfg(feature = "tflite")]
pub use tflite::{
Delegate, QuantizationParams, TensorDataType, TensorInfo, TfLiteConfig, TfLiteModel,
};
use crate::error::Result;
use oxigdal_core::buffer::RasterBuffer;
pub trait Model: Send + Sync {
fn metadata(&self) -> &ModelMetadata;
fn predict(&mut self, input: &RasterBuffer) -> Result<RasterBuffer>;
fn predict_batch(&mut self, inputs: &[RasterBuffer]) -> Result<Vec<RasterBuffer>>;
fn input_shape(&self) -> (usize, usize, usize);
fn output_shape(&self) -> (usize, usize, usize);
}