parameters: (spec)
return_statement: return True
docstring: Returns whether or not the message is fixed-length
      
      @param spec: The message spec
      @type spec: roslib.msgs.MsgSpec
      @param package: The package of the
      @type package: str
docstring_summary: Returns whether or not the message is fixed-length
docstring_tokens: Returns whether or not the message is fixed - length
function: def is_fixed_length(spec):
      """
      Returns whether or not the message is fixed-length
      
      @param spec: The message spec
      @type spec: roslib.msgs.MsgSpec
      @param package: The package of the
      @type package: str
      """
      types = []
      for field in spec.parsed_fields():
          if (field.is_array and field.array_len is None):
              return False
          
          if (field.base_type == 'string'):
              return False
          
          if (not field.is_builtin):
              types.append(field.base_type)
              
      types = set(types)
      for type in types:
          type = roslib.msgs.resolve_type(type, spec.package)
          (_, new_spec) = roslib.msgs.load_by_type(type, spec.package)
          if (not is_fixed_length(new_spec)):
              return False
          
      return True
function_tokens: def is_fixed_length ( spec ) : types = [ ] for field in spec . parsed_fields ( ) : if ( field . is_array and field . array_len is None ) : return False if ( field . base_type == 'string' ) : return False if ( not field . is_builtin ) : types . append ( field . base_type ) types = set ( types ) for type in types : type = roslib . msgs . resolve_type ( type , spec . package ) ( _ , new_spec ) = roslib . msgs . load_by_type ( type , spec . package ) if ( not is_fixed_length ( new_spec ) ) : return False return True