MCPcopy Create free account
hub / github.com/Ray-D-Song/lexe / pull_steps

Method pull_steps

modules/llrt_stream_web/src/readable/default_controller.rs:701–742  ·  view source on GitHub ↗
(
        ctx: &Ctx<'js>,
        mut objects: ReadableStreamDefaultReaderObjects<'js, Self>,
        read_request: impl ReadableStreamReadRequest<'js> + 'js,
    )

Source from the content-addressed store, hash-verified

699 }
700
701 fn pull_steps(
702 ctx: &Ctx<'js>,
703 mut objects: ReadableStreamDefaultReaderObjects<'js, Self>,
704 read_request: impl ReadableStreamReadRequest<'js> + 'js,
705 ) -> Result<ReadableStreamDefaultReaderObjects<'js, Self>> {
706 // If this.[[queue]] is not empty,
707 if !objects.controller.container.queue.is_empty() {
708 // Let chunk be ! DequeueValue(this).
709 let chunk = objects.controller.container.dequeue_value();
710 // If this.[[closeRequested]] is true and this.[[queue]] is empty,
711 if objects.controller.close_requested && objects.controller.container.queue.is_empty() {
712 // Perform ! ReadableStreamDefaultControllerClearAlgorithms(this).
713 objects
714 .controller
715 .readable_stream_default_controller_clear_algorithms();
716 // Perform ! ReadableStreamClose(stream).
717 objects = ReadableStream::readable_stream_close(ctx.clone(), objects)?;
718 } else {
719 // Otherwise, perform ! ReadableStreamDefaultControllerCallPullIfNeeded(this).
720 objects =
721 ReadableStreamDefaultController::readable_stream_default_controller_call_pull_if_needed(
722 ctx.clone(),
723 objects,
724 )?;
725 }
726
727 // Perform readRequest’s chunk steps, given chunk.
728 read_request.chunk_steps_typed(objects, chunk)
729 } else {
730 // Otherwise,
731 // Perform ! ReadableStreamAddReadRequest(stream, readRequest).
732 objects
733 .stream
734 .readable_stream_add_read_request(&mut objects.reader, read_request);
735 // Perform ! ReadableStreamDefaultControllerCallPullIfNeeded(this).
736
737 ReadableStreamDefaultController::readable_stream_default_controller_call_pull_if_needed(
738 ctx.clone(),
739 objects,
740 )
741 }
742 }
743
744 fn cancel_steps<R: ReadableStreamReader<'js>>(
745 ctx: &Ctx<'js>,

Callers

nothing calls this directly

Calls 6

dequeue_valueMethod · 0.80
chunk_steps_typedMethod · 0.80
is_emptyMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected