code: def schedule_to_proto_dicts(schedule: Schedule) -> Iterable[Dict]:
      
      last_time_picos = None  # type: Optional[int]
      for so in schedule.scheduled_operations:
          op = gate_to_proto_dict(
              cast(ops.GateOperation, so.operation).gate,
              so.operation.qubits)
          time_picos = so.time.raw_picos()
          if last_time_picos is None:
              op['incremental_delay_picoseconds'] = time_picos
          else:
              op['incremental_delay_picoseconds'] = time_picos - last_time_picos
          last_time_picos = time_picos
          yield op
docs: Convert a schedule into an iterable of proto dictionaries.
  
      Args:
          schedule: The schedule to convert to a proto dict. Must contain only
              gates that can be cast to xmon gates.
  
      Yields:
          A proto dictionary corresponding to an Operation proto.