teo_runtime/namespace/
extensions.rs

1use teo_parser::r#type::synthesized_shape_reference::SynthesizedShapeReference;
2use teo_parser::r#type::Type;
3use crate::namespace::Namespace;
4
5pub trait SynthesizedShapeReferenceExtension {
6    fn fetch_synthesized_definition_for_namespace<'a>(&'a self, namespace: &'a Namespace) -> Option<&'a Type>;
7}
8
9impl SynthesizedShapeReferenceExtension for SynthesizedShapeReference {
10
11    fn fetch_synthesized_definition_for_namespace<'a>(&'a self, namespace: &'a Namespace) -> Option<&'a Type> {
12        let model = namespace.model_at_path(&self.owner.as_model_object().unwrap().string_path()).unwrap();
13        model.cache().shape.shapes.get(&(self.kind, self.without.clone()))
14    }
15}
16