Inheritance gen
This commit is contained in:
@@ -396,6 +396,36 @@ impl GenRust for TopLevelKind {
|
||||
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