11#![ deny( clippy:: all) ]
22
33use std:: {
4- net:: { IpAddr , SocketAddr } , sync:: Arc , vec
4+ net:: { IpAddr , SocketAddr } , sync:: Arc
55} ;
66
77use napi:: bindgen_prelude:: * ;
@@ -230,8 +230,6 @@ impl Connection {
230230pub struct Stream {
231231 send : Arc < Mutex < quinn:: SendStream > > ,
232232 recv : Arc < Mutex < quinn:: RecvStream > > ,
233- // send: Arc<quinn::SendStream>,
234- // recv: Arc<quinn::RecvStream>,
235233}
236234
237235#[ napi]
@@ -255,143 +253,11 @@ impl Stream {
255253 }
256254 }
257255
258- #[ napi]
259- pub async unsafe fn read2 ( & mut self ) -> Result < Option < Uint8Array > > {
260- let mut buf = vec ! [ 0u8 ; 1024 ] ;
261- let chunk = self . recv . lock ( ) . await . read ( buf. as_mut ( ) ) . await . map_err ( to_err) ?;
262- match chunk {
263- Some ( len) => {
264- buf. truncate ( len as usize ) ;
265- Ok ( Some ( Uint8Array :: new ( buf) ) , )
266- } ,
267- None => Ok ( None ) ,
268- }
269- }
270-
271- // #[napi(ts_return_type = "Promise<number | undefined>")]
272- // pub fn read3(&mut self, env: Env, data: Buffer) -> Result<JsObject> {
273- // // let data = data.into_ref()?;
274- // let recv = self.recv.clone();
275-
276- // env.execute_tokio_future(async move {
277- // // unsafe, but we know the data is not going to be modified by JS
278- // let d = data.as_ref();
279- // let data_mut = unsafe {
280- // let ptr = d.as_ptr() as *mut u8;
281- // std::slice::from_raw_parts_mut(ptr, d.len())
282- // };
283- // let mut recv = recv.lock().await;
284- // let chunk = recv.read(
285- // data_mut
286- // ).await.map_err(to_err)?;
287- // match chunk {
288- // Some(len) => Ok((Some(len as u32), data)),
289- // None => Ok((None, data)),
290- // }
291- // }, move |env, output| {
292- // let (output, mut data) = output;
293-
294- // println!("{:?}", data.unref(*env)?);
295- // if let Some(output) = output {
296- // env.create_uint32(output).and_then(|n| Ok(n.into_unknown()))
297- // } else {
298- // env.get_undefined().and_then(|u| Ok(u.into_unknown()))
299- // }
300- // })
301- // }
302-
303- // #[napi(ts_return_type = "Promise<number | undefined>")]
304- // pub fn read4(&mut self, data: JsBuffer) -> AsyncTask<Read> {
305- // let data = data.into_ref().unwrap();
306- // AsyncTask::new(Read {
307- // buf: data,
308- // recv: self.recv.clone(),
309- // })
310- // }
311-
312- // #[napi(ts_return_type = "Promise<number | undefined>")]
313- // pub fn read5(&mut self, env: Env, data: JsBuffer) -> Result<JsObject> {
314- // let data = data.into_value()?;
315- // let recv = self.recv.clone();
316-
317- // // unsafe, but we know the data is not going to be modified by JS
318- // let data_mut = unsafe {
319- // let ptr = data.as_ptr() as *mut u8;
320- // std::slice::from_raw_parts_mut(ptr, data.len())
321- // };
322- // env.execute_tokio_future(async move {
323- // let mut recv = recv.lock().await;
324- // let chunk = recv.read(
325- // data_mut
326- // ).await.map_err(to_err)?;
327- // match chunk {
328- // Some(len) => Ok(Some(len as u32)),
329- // None => Ok(None),
330- // }
331- // }, move |env, output| {
332- // if let Some(output) = output {
333- // env.create_uint32(output).and_then(|n| Ok(n.into_unknown()))
334- // } else {
335- // env.get_undefined().and_then(|u| Ok(u.into_unknown()))
336- // }
337- // })
338- // }
339-
340256 #[ napi]
341257 pub async unsafe fn write ( & mut self , data : Uint8Array ) -> Result < ( ) > {
342258 self . send . lock ( ) . await . write_all ( & data) . await . map_err ( to_err)
343259 }
344260
345- // #[napi]
346- // pub fn write2(&mut self, #[napi(ts_arg_type = "Uint8Array")] data: JsTypedArray) -> Result<AsyncTask<Write>> {
347- // let data = data.into_value()?;
348- // let byte_offset = data.byte_offset;
349- // let length = data.length;
350- // let data = data.arraybuffer.into_ref()?;
351- // Ok(AsyncTask::new(Write {
352- // data,
353- // byte_offset,
354- // length,
355- // send: self.send.clone(),
356- // }))
357- // }
358-
359- // #[napi(ts_return_type = "Promise<undefined>")]
360- // pub fn write3(&mut self, env: Env, #[napi(ts_arg_type = "Uint8Array")] data: JsTypedArray) -> Result<JsObject> {
361- // let data = data.into_value()?;
362- // let byte_offset = data.byte_offset;
363- // let length = data.length;
364- // let data = data.arraybuffer.into_ref()?;
365- // let send = self.send.clone();
366- // env.execute_tokio_future(async move {
367- // let mut send = send.lock().await;
368- // let _ = send.write_all(&data[byte_offset..byte_offset+length]).await.map_err(to_err);
369- // Ok(data)
370- // }, |env, mut data| {
371- // data.unref(*env)?;
372- // env.get_undefined()
373- // })
374- // }
375-
376- // #[napi(ts_return_type = "Promise<undefined>")]
377- // pub fn write4(&mut self, env: Env, #[napi(ts_arg_type = "Uint8Array")] data: JsTypedArray) -> Result<JsObject> {
378- // let data = data.into_value()?;
379- // let byte_offset = data.byte_offset;
380- // let length = data.length;
381- // let data = data.arraybuffer.into_value()?;
382- // let data_mut = unsafe {
383- // let ptr = data.as_ptr() as *mut u8;
384- // std::slice::from_raw_parts(ptr, data.len())
385- // };
386- // let send = self.send.clone();
387- // env.execute_tokio_future(async move {
388- // let mut send = send.lock().await;
389- // send.write_all(&data_mut[byte_offset..byte_offset+length]).await.map_err(to_err)
390- // }, |env, _| {
391- // env.get_undefined()
392- // })
393- // }
394-
395261 #[ napi]
396262 pub async unsafe fn finish_write ( & mut self ) {
397263 let _ = self . send . lock ( ) . await . finish ( ) ;
@@ -411,72 +277,3 @@ impl Stream {
411277fn to_err < T : ToString > ( str : T ) -> napi:: Error {
412278 napi:: Error :: new ( Status :: Unknown , str)
413279}
414-
415- // pub struct Write {
416- // data: Ref<JsArrayBufferValue>,
417- // byte_offset: usize,
418- // length: usize,
419- // send: Arc<Mutex<SendStream>>,
420- // }
421-
422- // impl Task for Write {
423- // type Output = ();
424- // type JsValue = JsUndefined;
425-
426- // fn compute(&mut self) -> Result<Self::Output> {
427- // block_on(async move {
428- // let mut send = self.send.lock().await;
429- // send.write_all(&self.data[self.byte_offset..self.byte_offset+self.length]).await.map_err(to_err)
430- // })
431- // }
432-
433- // fn resolve(&mut self, env: Env, _output: Self::Output) -> Result<Self::JsValue> {
434- // env.get_undefined()
435- // }
436-
437- // fn finally(&mut self, env: Env) -> Result<()> {
438- // self.data.unref(env)?;
439- // Ok(())
440- // }
441- // }
442-
443- // pub struct Read {
444- // buf: Ref<JsBufferValue>,
445- // recv: Arc<Mutex<RecvStream>>,
446- // }
447-
448- // impl Task for Read {
449- // type Output = Option<u32>;
450- // type JsValue = Either<JsNumber, JsUndefined>;
451-
452- // fn compute(&mut self) -> Result<Self::Output> {
453- // block_on(async move {
454- // // unsafe, but we know the data is not going to be modified by JS
455- // let d = self.buf.as_ref();
456- // let data_mut = unsafe {
457- // let ptr = d.as_ptr() as *mut u8;
458- // std::slice::from_raw_parts_mut(ptr, d.len())
459- // };
460- // let chunk = self.recv.lock().await.read(data_mut).await.map_err(to_err)?;
461- // match chunk {
462- // Some(len) => Ok(Some(len as u32)),
463- // None => Ok(None),
464- // }
465- // })
466- // }
467-
468- // fn resolve(&mut self, env: Env, output: Self::Output) -> Result<Self::JsValue> {
469- // if let Some(output) = output {
470- // env.create_uint32(output).map(Either::A)
471- // } else {
472- // env.get_undefined().map(Either::B)
473- // }
474- // }
475-
476- // fn finally(&mut self, env: Env) -> Result<()> {
477- // self.buf.unref(env)?;
478- // Ok(())
479- // }
480- // }
481-
482- // mod out;
0 commit comments