@@ -344,3 +344,198 @@ impl_our! {
344
344
impl_our ! {
345
345
impl <W : std:: io:: Write > Write for std:: io:: BufWriter <W >
346
346
}
347
+
348
+ #[ cfg( rust_v_1_72) ]
349
+ impl_our ! {
350
+ impl <W : std:: io:: Write > Write for std:: io:: LineWriter <W > where W : ?Sized
351
+ }
352
+
353
+ #[ cfg( not( rust_v_1_72) ) ]
354
+ impl_our ! {
355
+ impl <W : std:: io:: Write > Write for std:: io:: LineWriter <W >
356
+ }
357
+
358
+ impl_our ! {
359
+ impl <R : std:: io:: Read > Read for std:: io:: Take <R >
360
+ }
361
+
362
+ impl_our ! {
363
+ impl <R : std:: io:: BufRead > BufRead for std:: io:: Take <R >
364
+ }
365
+
366
+ impl_our ! {
367
+ impl <R1 : std:: io:: Read , R2 : std:: io:: Read > Read for std:: io:: Chain <R1 , R2 >
368
+ }
369
+
370
+ impl_our ! {
371
+ impl <R1 : std:: io:: BufRead , R2 : std:: io:: BufRead > BufRead for std:: io:: Chain <R1 , R2 >
372
+ }
373
+
374
+ impl_our ! {
375
+ impl <T : AsRef <[ u8 ] >> Read for std:: io:: Cursor <T >
376
+ }
377
+
378
+ impl_our ! {
379
+ impl <T : AsRef <[ u8 ] >> BufRead for std:: io:: Cursor <T >
380
+ }
381
+
382
+ impl_our ! {
383
+ impl Write for std:: io:: Cursor <std:: vec:: Vec <u8 >>
384
+ }
385
+
386
+ impl_our ! {
387
+ impl Write for std:: io:: Cursor <& ' _ mut std:: vec:: Vec <u8 >>
388
+ }
389
+
390
+ impl_our ! {
391
+ impl Write for std:: io:: Cursor <std:: boxed:: Box <[ u8 ] >>
392
+ }
393
+
394
+ impl_our ! {
395
+ impl Read for std:: io:: Empty
396
+ }
397
+
398
+ impl_our ! {
399
+ impl BufRead for std:: io:: Empty
400
+ }
401
+
402
+ #[ cfg( rust_v_1_73) ]
403
+ impl_our ! {
404
+ impl Write for std:: io:: Empty
405
+ }
406
+
407
+ // No idea why &Empty impls Write but not Read + BufRead
408
+ #[ cfg( rust_v_1_73) ]
409
+ impl_our ! {
410
+ impl Write for & ' _ std:: io:: Empty
411
+ }
412
+
413
+ impl_our ! {
414
+ impl Read for std:: io:: Repeat
415
+ }
416
+
417
+ impl_our ! {
418
+ impl Read for std:: io:: Stdin
419
+ }
420
+
421
+ #[ cfg( rust_v_1_78) ]
422
+ impl_our ! {
423
+ impl Read for & ' _ std:: io:: Stdin
424
+ }
425
+
426
+ impl_our ! {
427
+ impl Write for std:: io:: Stdout
428
+ }
429
+
430
+ impl_our ! {
431
+ impl Write for & ' _ std:: io:: Stdout
432
+ }
433
+
434
+ impl_our ! {
435
+ impl Write for std:: io:: Stderr
436
+ }
437
+
438
+ impl_our ! {
439
+ impl Write for & ' _ std:: io:: Stderr
440
+ }
441
+
442
+ impl_our ! {
443
+ impl Read for std:: io:: StdinLock <' _>
444
+ }
445
+
446
+ impl_our ! {
447
+ impl BufRead for std:: io:: StdinLock <' _>
448
+ }
449
+
450
+ impl_our ! {
451
+ impl Read for std:: fs:: File
452
+ }
453
+
454
+ impl_our ! {
455
+ impl Write for std:: fs:: File
456
+ }
457
+
458
+ impl_our ! {
459
+ impl Read for & ' _ std:: fs:: File
460
+ }
461
+
462
+ impl_our ! {
463
+ impl Write for & ' _ std:: fs:: File
464
+ }
465
+
466
+ #[ cfg( rust_v_1_73) ]
467
+ impl_our ! {
468
+ impl Read for std:: sync:: Arc <std:: fs:: File >
469
+ }
470
+
471
+ #[ cfg( rust_v_1_73) ]
472
+ impl_our ! {
473
+ impl Write for std:: sync:: Arc <std:: fs:: File >
474
+ }
475
+
476
+ impl_our ! {
477
+ impl Read for std:: net:: TcpStream
478
+ }
479
+
480
+ impl_our ! {
481
+ impl Write for std:: net:: TcpStream
482
+ }
483
+
484
+ impl_our ! {
485
+ impl Read for & ' _ std:: net:: TcpStream
486
+ }
487
+
488
+ impl_our ! {
489
+ impl Write for & ' _ std:: net:: TcpStream
490
+ }
491
+
492
+ #[ cfg( target_family = "unix" ) ]
493
+ impl_our ! {
494
+ impl Read for std:: os:: unix:: net:: UnixStream
495
+ }
496
+
497
+ #[ cfg( target_family = "unix" ) ]
498
+ impl_our ! {
499
+ impl Write for std:: os:: unix:: net:: UnixStream
500
+ }
501
+
502
+ #[ cfg( target_family = "unix" ) ]
503
+ impl_our ! {
504
+ impl Read for & ' _ std:: os:: unix:: net:: UnixStream
505
+ }
506
+
507
+ #[ cfg( target_family = "unix" ) ]
508
+ impl_our ! {
509
+ impl Write for & ' _ std:: os:: unix:: net:: UnixStream
510
+ }
511
+
512
+ impl_our ! {
513
+ impl Read for std:: process:: ChildStderr
514
+ }
515
+
516
+ impl_our ! {
517
+ impl Read for std:: process:: ChildStdout
518
+ }
519
+
520
+ impl_our ! {
521
+ impl Write for std:: process:: ChildStdin
522
+ }
523
+
524
+ // No ide why other &ChildStd* are not implemented
525
+ impl_our ! {
526
+ impl Write for & ' _ std:: process:: ChildStdin
527
+ }
528
+
529
+ #[ cfg( rust_v_1_75) ]
530
+ impl_our ! {
531
+ impl Read for std:: collections:: VecDeque <u8 >
532
+ }
533
+
534
+ #[ cfg( rust_v_1_75) ]
535
+ impl_our ! {
536
+ impl BufRead for std:: collections:: VecDeque <u8 >
537
+ }
538
+
539
+ impl_our ! {
540
+ impl Write for std:: collections:: VecDeque <u8 >
541
+ }
0 commit comments