in hessian2/basic_codec/list_codec.cc [218:238]
bool Encoder::encode(const UntypedListObject& value) {
values_ref_.emplace(&value, values_ref_.size());
auto untyped_list = value.toUntypedList();
ABSL_ASSERT(untyped_list.has_value());
auto& untyped_list_value = untyped_list.value().get();
auto len = untyped_list_value.size();
if (len <= 7) {
writer_->writeByte(static_cast<uint8_t>(0x78 + len));
} else {
writer_->writeByte(static_cast<uint8_t>(0x58));
encode<int32_t>(len);
}
for (size_t i = 0; i < len; i++) {
encode<Object>(*(untyped_list_value)[i]);
}
return true;
}