(
mut self,
default: impl FnOnce(
ReadableStreamDefaultReaderObjects<'js, C>,
) -> Result<ReadableStreamDefaultReaderObjects<'js, C>>,
byob: impl FnOnce(Rea
| 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 { |
no test coverage detected