libmir-metal 0.1.0

Metal inference backend for libmir
use std::path::Path;

use super::{Array, Result, Stream};

#[derive(Debug)]
pub struct TensorFile {
    native: mirtal::TensorFile,
}

impl TensorFile {
    pub fn load(path: &Path, stream: &Stream) -> Result<Self> {
        Ok(Self {
            native: mirtal::TensorFile::load(path, stream.native())?,
        })
    }

    pub fn len(&self) -> Result<usize> {
        Ok(self.native.len())
    }

    pub fn evaluate(&self) -> Result<()> {
        Ok(self.native.evaluate()?)
    }

    pub fn get(&self, name: &str) -> Result<Array> {
        Array::from_native(self.native.get(name)?)
    }

    pub fn contains(&self, name: &str) -> Result<bool> {
        Ok(self.native.contains(name)?)
    }

    pub fn is_empty(&self) -> Result<bool> {
        Ok(self.native.is_empty())
    }
}