Skip to main content

svod_runtime/
custom_function.rs

1use std::collections::HashMap;
2use std::sync::Arc;
3
4use svod_device::Buffer;
5use svod_ir::{CustomFunctionKind, UOp};
6
7use crate::{Error, Result};
8
9fn unsupported(kind: &str, attrs: &[Arc<UOp>], buffers: &[Buffer], vars: &HashMap<String, i64>) -> Error {
10    Error::Unsupported {
11        kind: kind.to_string(),
12        reason: format!(
13            "runtime is reserved but not implemented (attrs={}, buffers={}, vars={})",
14            attrs.len(),
15            buffers.len(),
16            vars.len()
17        ),
18    }
19}
20
21pub fn run_custom_function(
22    kind: &CustomFunctionKind,
23    attrs: &[Arc<UOp>],
24    buffers: &mut [Buffer],
25    vars: &HashMap<String, i64>,
26) -> Result<()> {
27    let label = match kind {
28        CustomFunctionKind::EncDec => "EncDec",
29        CustomFunctionKind::Graph => "Graph",
30    };
31    Err(unsupported(label, attrs, buffers, vars))
32}
33
34#[cfg(test)]
35#[path = "test/unit/custom_function.rs"]
36mod tests;