use core::ffi;
use super::ExecutionProvider;
use crate::{
AsPointer,
error::{Error, Result},
session::builder::SessionBuilder
};
#[derive(Debug, Default, Clone)]
pub struct ACL {
fast_math: bool
}
super::impl_ep!(ACL);
impl ACL {
#[must_use]
pub fn with_fast_math(mut self, enable: bool) -> Self {
self.fast_math = enable;
self
}
}
impl ExecutionProvider for ACL {
const NAME: &'static str = "ACLExecutionProvider";
fn register(&self, session_builder: &mut SessionBuilder) -> Result<()> {
super::define_ep_register!(
OrtSessionOptionsAppendExecutionProvider_ACL(options: *mut ort_sys::OrtSessionOptions, enable_fast_math: ffi::c_int) -> ort_sys::OrtStatusPtr
);
unsafe { Error::result_from_status(OrtSessionOptionsAppendExecutionProvider_ACL(session_builder.ptr_mut(), self.fast_math.into())) }
}
}