use sim_kernel::{Symbol, Value};
use crate::name::{ExternalNamePolicy, external_name};
#[derive(Debug, Clone)]
pub struct SurfaceDescriptor {
pub id: String,
pub symbol: Symbol,
pub title: String,
pub description: String,
pub input_shape: Value,
pub output_shape: Option<Value>,
pub roles: Vec<Symbol>,
pub capabilities: Vec<Symbol>,
pub annotations: Vec<(String, String)>,
}
impl SurfaceDescriptor {
pub fn external_name(&self, policy: ExternalNamePolicy) -> String {
external_name(&self.symbol, policy)
}
}