MCPcopy Create free account
hub / github.com/awslabs/llrt / with_reader

Method with_reader

modules/llrt_stream_web/src/readable/objects.rs:189–239  ·  view source on GitHub ↗
(
        mut self,
        default: impl FnOnce(
            ReadableStreamDefaultReaderObjects<'js, C>,
        ) -> Result<ReadableStreamDefaultReaderObjects<'js, C>>,
        byob: impl FnOnce(Rea

Source from the content-addressed store, hash-verified

187 }
188
189 pub(super) fn with_reader(
190 mut self,
191 default: impl FnOnce(
192 ReadableStreamDefaultReaderObjects<'js, C>,
193 ) -> Result<ReadableStreamDefaultReaderObjects<'js, C>>,
194 byob: impl FnOnce(ReadableStreamBYOBObjects<'js>) -> Result<ReadableStreamBYOBObjects<'js>>,
195 none: impl FnOnce(
196 ReadableStreamObjects<'js, C, UndefinedReader>,
197 ) -> Result<ReadableStreamObjects<'js, C, UndefinedReader>>,
198 ) -> Result<Self> {
199 ((self.stream, self.controller), self.reader) = self.reader.with_reader(
200 (self.stream, self.controller),
201 |(stream, controller), reader| {
202 let objects = default(ReadableStreamObjects {
203 stream,
204 controller,
205 reader,
206 })?;
207
208 Ok(((objects.stream, objects.controller), objects.reader))
209 },
210 |(mut stream, mut controller), mut reader| {
211 ((stream, reader), controller) = controller.with_controller(
212 (stream, reader),
213 |_, _| panic!("byob reader must have a byte controller"),
214 |(stream, reader), controller| {
215 let objects = byob(ReadableStreamObjects {
216 stream,
217 controller,
218 reader,
219 })?;
220
221 Ok(((objects.stream, objects.reader), objects.controller))
222 },
223 )?;
224
225 Ok(((stream, controller), reader))
226 },
227 |(stream, controller)| {
228 let objects = none(ReadableStreamObjects {
229 stream,
230 controller,
231 reader: UndefinedReader,
232 })?;
233
234 Ok((objects.stream, objects.controller))
235 },
236 )?;
237
238 Ok(self)
239 }
240
241 pub(super) fn into_inner(self) -> ReadableStreamClassObjects<'js, C, R> {
242 ReadableStreamClassObjects {

Calls 1

with_controllerMethod · 0.45

Tested by

no test coverage detected