rust subclass "substruct"