svod_runtime/
custom_function.rs1use 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;