code: def self_build(self, field_pos_list=None):
          # type: (Any) -> str
          
          if self.getfieldval('type') is None:
              self.type = 1 if isinstance(self.getfieldval('data'), HPackZString) else 0  # noqa: E501
          return super(HPackHdrString, self).self_build(field_pos_list)
docs: self_build is overridden because type and len are determined at
          build time, based on the "data" field internal type