teo_runtime/namespace/
extensions.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use teo_parser::r#type::synthesized_shape_reference::SynthesizedShapeReference;
use teo_parser::r#type::Type;
use crate::namespace::Namespace;

pub trait SynthesizedShapeReferenceExtension {
    fn fetch_synthesized_definition_for_namespace<'a>(&'a self, namespace: &'a Namespace) -> Option<&'a Type>;
}

impl SynthesizedShapeReferenceExtension for SynthesizedShapeReference {

    fn fetch_synthesized_definition_for_namespace<'a>(&'a self, namespace: &'a Namespace) -> Option<&'a Type> {
        let model = namespace.model_at_path(&self.owner.as_model_object().unwrap().string_path()).unwrap();
        model.cache().shape.shapes.get(&(self.kind, self.without.clone()))
    }
}