Inheritance gen
This commit is contained in:
@@ -396,6 +396,36 @@ impl GenRust for TopLevelKind {
|
|||||||
ClassItem::Method(_) => {}
|
ClassItem::Method(_) => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(inherits) = inherits {
|
||||||
|
cg.add("impl std::ops::Deref for ");
|
||||||
|
cg.add(&name.get_rust());
|
||||||
|
|
||||||
|
cg.addln(" {");
|
||||||
|
cg.indent += 1;
|
||||||
|
|
||||||
|
cg.add_indented("type Target = ");
|
||||||
|
cg.add(&inherits.get_rust());
|
||||||
|
cg.addln(";");
|
||||||
|
|
||||||
|
cg.add_indentedln("fn deref(&self) -> &Self::Target {&self._super}");
|
||||||
|
|
||||||
|
cg.indent -= 1;
|
||||||
|
cg.addln("}");
|
||||||
|
|
||||||
|
// Mut
|
||||||
|
|
||||||
|
cg.add("impl std::ops::DerefMut for ");
|
||||||
|
cg.add(&name.get_rust());
|
||||||
|
|
||||||
|
cg.addln(" {");
|
||||||
|
cg.indent += 1;
|
||||||
|
|
||||||
|
cg.add_indentedln("fn deref(&mut self) -> &mut Self::Target {&mut self._super}");
|
||||||
|
|
||||||
|
cg.indent -= 1;
|
||||||
|
cg.addln("}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user