use std::collections::HashMap;
use super::onnx::{FunctionProto, GraphProto, ValueInfoProto};
pub fn function_to_graph_view(function: &FunctionProto) -> GraphProto {
let lookup: HashMap<&str, &ValueInfoProto> = function
.value_info
.iter()
.map(|v| (v.name.as_str(), v))
.collect();
let resolve = |name: &str| -> ValueInfoProto {
lookup
.get(name)
.map(|v| (*v).clone())
.unwrap_or(ValueInfoProto {
name: name.to_string(),
..Default::default()
})
};
GraphProto {
node: function.node.clone(),
name: function.name.clone(),
input: function.input.iter().map(|n| resolve(n)).collect(),
output: function.output.iter().map(|n| resolve(n)).collect(),
value_info: function.value_info.clone(),
..Default::default()
}
}