code: async def wait_for_start(self) -> None:
          
          try:
              start_event = await self.recv_event()
          except Component.Success as succ:
              raise Component.LifecycleError(f"component returned before start finished") from succ
          except Component.Failure as fail:
              # here we don't expect a wrapped result, so we unwrap the failure
              cause, = fail.args
              raise cause from None
          else:
              if start_event != Component.EVENT_START:
                  self.cancel_nowait()
                  raise Component.LifecycleError(f"Component must emit EVENT_START, was {start_event}")
docs: \
          Start the component. This waits for `Component.EVENT_START` to be sent from the task.
          If the task returns without an event, a `LifecycleError` is raised with a `Success` as its cause.
          If the task raises an exception before any event, that exception is raised.
          If the task sends a different event than `Component.EVENT_START`,
          the task is cancelled (without waiting for the task to shut down) and a `LifecycleError` is raised.