code: def _SimpleSizer(compute_value_size):
      """A sizer which uses the function compute_value_size to compute the size of
      each value.  Typically compute_value_size is _VarintSize."""
  
      def SpecificSizer(field_number, is_repeated, is_packed):
          tag_size = _TagSize(field_number)
          if is_packed:
              local_VarintSize = _VarintSize
  
              def PackedFieldSize(value):
                  result = 0
                  for element in value:
                      result += compute_value_size(element)
                  return result + local_VarintSize(result) + tag_size
  
              return PackedFieldSize
          elif is_repeated:
  
              def RepeatedFieldSize(value):
                  result = tag_size * len(value)
                  for element in value:
                      result += compute_value_size(element)
                  return result
  
              return RepeatedFieldSize
          else:
  
              def FieldSize(value):
                  return tag_size + compute_value_size(value)
  
              return FieldSize
  
      return SpecificSizer
  
imports: import struct
  import six
  from google.protobuf.internal import wire_format
label_desc: Use image node_id 4 for calling a global function with example usage: _SimpleSizer(compute_value_size) and returns: SpecificSizer, PackedFieldSize, unknown, RepeatedFieldSize, FieldSize, result, unknown