code: def _decode_symbols(symbols):
      
      for symbol in symbols:
          data = string_at(zbar_symbol_get_data(symbol))
          # The 'type' int in a value in the ZBarSymbol enumeration
          symbol_type = ZBarSymbol(symbol.contents.type).name
          polygon = convex_hull(
              (
                  zbar_symbol_get_loc_x(symbol, index),
                  zbar_symbol_get_loc_y(symbol, index)
              )
              for index in _RANGEFN(zbar_symbol_get_loc_size(symbol))
          )
  
          yield Decoded(
              data=data,
              type=symbol_type,
              rect=bounding_box(polygon),
              polygon=polygon
          )
docs: Generator of decoded symbol information.
  
      Args:
          symbols: iterable of instances of `POINTER(zbar_symbol)`
  
      Yields:
          Decoded: decoded symbol