Loading system/gd/packet/parser/packet_def.cc +29 −7 Original line number Diff line number Diff line Loading @@ -756,6 +756,24 @@ void PacketDef::GenRustChildEnums(std::ostream& s) const { } s << "None,"; s << "}\n"; s << "impl " << name_ << "DataChild {"; s << "fn get_total_size(&self) -> usize {"; s << "match self {"; for (const auto& child : children_) { if (child->name_.rfind("LeGetVendorCapabilitiesComplete", 0) == 0) { continue; } s << name_ << "DataChild::" << child->name_ << "(value) => value.get_total_size(),"; } if (payload) { s << name_ << "DataChild::Payload(p) => p.len(),"; } s << name_ << "DataChild::None => 0,"; s << "}\n"; s << "}\n"; s << "}\n"; s << "#[derive(Debug)] "; s << "pub enum " << name_ << "Child {"; for (const auto& child : children_) { Loading Loading @@ -858,10 +876,8 @@ void PacketDef::GenRustStructSizeField(std::ostream& s) const { for (int i = 0; i < fields.size(); i++) { size += fields[i]->GetSize().bytes(); } if (fields.size() > 0) { s << size; } } void PacketDef::GenRustStructImpls(std::ostream& s) const { s << "impl " << name_ << "Data {"; Loading Loading @@ -1023,11 +1039,17 @@ void PacketDef::GenRustStructImpls(std::ostream& s) const { s << "}\n"; if (fields.size() > 0) { s << "fn get_total_size(&self) -> usize {"; if (HasChildEnums()) { s << "self.get_size() + self.child.get_total_size()"; } else { s << "self.get_size()"; } s << "}\n"; s << "pub fn get_size(&self) -> usize {"; GenRustStructSizeField(s); s << "}"; } s << "}\n"; s << "}\n"; } Loading Loading
system/gd/packet/parser/packet_def.cc +29 −7 Original line number Diff line number Diff line Loading @@ -756,6 +756,24 @@ void PacketDef::GenRustChildEnums(std::ostream& s) const { } s << "None,"; s << "}\n"; s << "impl " << name_ << "DataChild {"; s << "fn get_total_size(&self) -> usize {"; s << "match self {"; for (const auto& child : children_) { if (child->name_.rfind("LeGetVendorCapabilitiesComplete", 0) == 0) { continue; } s << name_ << "DataChild::" << child->name_ << "(value) => value.get_total_size(),"; } if (payload) { s << name_ << "DataChild::Payload(p) => p.len(),"; } s << name_ << "DataChild::None => 0,"; s << "}\n"; s << "}\n"; s << "}\n"; s << "#[derive(Debug)] "; s << "pub enum " << name_ << "Child {"; for (const auto& child : children_) { Loading Loading @@ -858,10 +876,8 @@ void PacketDef::GenRustStructSizeField(std::ostream& s) const { for (int i = 0; i < fields.size(); i++) { size += fields[i]->GetSize().bytes(); } if (fields.size() > 0) { s << size; } } void PacketDef::GenRustStructImpls(std::ostream& s) const { s << "impl " << name_ << "Data {"; Loading Loading @@ -1023,11 +1039,17 @@ void PacketDef::GenRustStructImpls(std::ostream& s) const { s << "}\n"; if (fields.size() > 0) { s << "fn get_total_size(&self) -> usize {"; if (HasChildEnums()) { s << "self.get_size() + self.child.get_total_size()"; } else { s << "self.get_size()"; } s << "}\n"; s << "pub fn get_size(&self) -> usize {"; GenRustStructSizeField(s); s << "}"; } s << "}\n"; s << "}\n"; } Loading