parameters: (wire_type, format)
return_statement: return _SimpleDecoder(wire_type, InnerDecode)
docstring: Return a constructor for a decoder for a fixed-width field.
  
    Args:
        wire_type:  The field's wire type.
        format:  The format string to pass to struct.unpack().
docstring_summary: Return a constructor for a decoder for a fixed-width field.
docstring_tokens: Return a constructor for a decoder for a fixed - width field .
function: def _StructPackDecoder(wire_type, format):
    """Return a constructor for a decoder for a fixed-width field.
  
    Args:
        wire_type:  The field's wire type.
        format:  The format string to pass to struct.unpack().
    """
  
    value_size = struct.calcsize(format)
    local_unpack = struct.unpack
  
    # Reusing _SimpleDecoder is slightly slower than copying a bunch of code, but
    # not enough to make a significant difference.
  
    # Note that we expect someone up-stack to catch struct.error and convert
    # it to _DecodeError -- this way we don't have to set up exception-
    # handling blocks every time we parse one value.
  
    def InnerDecode(buffer, pos):
      new_pos = pos + value_size
      result = local_unpack(format, buffer[pos:new_pos])[0]
      return (result, new_pos)
    return _SimpleDecoder(wire_type, InnerDecode)
function_tokens: def _StructPackDecoder ( wire_type , format ) : value_size = struct . calcsize ( format ) local_unpack = struct . unpack # Reusing _SimpleDecoder is slightly slower than copying a bunch of code, but # not enough to make a significant difference. # Note that we expect someone up-stack to catch struct.error and convert # it to _DecodeError -- this way we don't have to set up exception- # handling blocks every time we parse one value. def InnerDecode ( buffer , pos ) : new_pos = pos + value_size result = local_unpack ( format , buffer [ pos : new_pos ] ) [ 0 ] return ( result , new_pos ) return _SimpleDecoder ( wire_type , InnerDecode )