ploidy_codegen_rust/
graph.rs1use std::ops::Deref;
2
3use ploidy_core::{
4 codegen::UniqueNameSpace,
5 ir::{IrGraph, View},
6};
7
8use super::naming::SchemaIdent;
9
10#[derive(Debug)]
12pub struct CodegenGraph<'a>(IrGraph<'a>);
13
14impl<'a> CodegenGraph<'a> {
15 pub fn new(graph: IrGraph<'a>) -> Self {
16 let mut space = UniqueNameSpace::new();
17 for mut view in graph.schemas() {
18 let name = view.name();
19 view.extensions_mut()
20 .insert(SchemaIdent(space.uniquify(name).into_owned()));
21 }
22 Self(graph)
23 }
24}
25
26impl<'a> Deref for CodegenGraph<'a> {
27 type Target = IrGraph<'a>;
28
29 fn deref(&self) -> &Self::Target {
30 &self.0
31 }
32}