use crate::prelude::*;
#[derive(Debug)]
pub struct Session {
pub(crate) inner: *mut mnn_sys::Session,
pub(crate) net: *mut mnn_sys::Interpreter,
pub(crate) __session_internals: crate::SessionInternals,
pub(crate) __marker: PhantomData<()>,
}
#[derive(Debug)]
pub enum SessionInternals {
Single(crate::ScheduleConfig),
MultiSession(crate::ScheduleConfigs),
}
impl Session {
pub fn destroy(&mut self) {
unsafe {
mnn_sys::Interpreter_releaseSession(self.net, self.inner);
}
}
}
impl Drop for Session {
fn drop(&mut self) {
self.destroy();
}
}