svod-runtime 0.1.0-alpha.3

Kernel execution runtime for the Svod ML compiler
Documentation
use std::collections::HashMap;
use std::sync::Arc;

use svod_device::Buffer;
use svod_ir::{CustomFunctionKind, UOp};

use crate::{Error, Result};

fn unsupported(kind: &str, attrs: &[Arc<UOp>], buffers: &[Buffer], vars: &HashMap<String, i64>) -> Error {
    Error::Unsupported {
        kind: kind.to_string(),
        reason: format!(
            "runtime is reserved but not implemented (attrs={}, buffers={}, vars={})",
            attrs.len(),
            buffers.len(),
            vars.len()
        ),
    }
}

pub fn run_custom_function(
    kind: &CustomFunctionKind,
    attrs: &[Arc<UOp>],
    buffers: &mut [Buffer],
    vars: &HashMap<String, i64>,
) -> Result<()> {
    let label = match kind {
        CustomFunctionKind::EncDec => "EncDec",
        CustomFunctionKind::Graph => "Graph",
    };
    Err(unsupported(label, attrs, buffers, vars))
}

#[cfg(test)]
#[path = "test/unit/custom_function.rs"]
mod tests;