@@ -22,7 +22,6 @@ use crate::{
22
22
} ;
23
23
use blake3:: guts:: parent_cv;
24
24
use bytes:: { Bytes , BytesMut } ;
25
- use iroh_io:: AsyncStreamWriter ;
26
25
use smallvec:: SmallVec ;
27
26
use tokio:: io:: { AsyncRead , AsyncReadExt , AsyncSeek , AsyncSeekExt , AsyncWrite , AsyncWriteExt } ;
28
27
@@ -476,7 +475,7 @@ pub async fn encode_ranges<D, O, W>(
476
475
where
477
476
D : AsyncSliceReader ,
478
477
O : Outboard ,
479
- W : AsyncStreamWriter ,
478
+ W : AsyncWrite + Unpin ,
480
479
{
481
480
let mut encoded = encoded;
482
481
let tree = outboard. tree ( ) ;
@@ -496,7 +495,7 @@ where
496
495
let start = start_chunk. to_bytes ( ) ;
497
496
let bytes = data. read_at ( start, size) . await ?;
498
497
encoded
499
- . write_bytes ( bytes)
498
+ . write_all ( & bytes)
500
499
. await
501
500
. map_err ( |e| EncodeError :: maybe_leaf_write ( e, start_chunk) ) ?;
502
501
}
@@ -521,10 +520,11 @@ pub async fn encode_ranges_validated<D, O, W>(
521
520
where
522
521
D : AsyncSliceReader ,
523
522
O : Outboard ,
524
- W : AsyncStreamWriter ,
523
+ W : AsyncWrite + Unpin ,
525
524
{
526
525
// buffer for writing incomplete subtrees.
527
526
// for queries that don't have incomplete subtrees, this will never be used.
527
+ let mut out_buf = Vec :: new ( ) ;
528
528
let mut stack = SmallVec :: < [ blake3:: Hash ; 10 ] > :: new ( ) ;
529
529
stack. push ( outboard. root ( ) ) ;
530
530
let mut encoded = encoded;
@@ -572,7 +572,7 @@ where
572
572
//
573
573
// write into an out buffer to ensure we detect mismatches
574
574
// before writing to the output.
575
- let mut out_buf = Vec :: new ( ) ;
575
+ out_buf. clear ( ) ;
576
576
let actual = encode_selected_rec (
577
577
start_chunk,
578
578
& bytes,
@@ -582,16 +582,16 @@ where
582
582
true ,
583
583
& mut out_buf,
584
584
) ;
585
- ( actual, out_buf. into ( ) )
585
+ ( actual, out_buf. as_slice ( ) )
586
586
} else {
587
587
let actual = hash_subtree ( start_chunk. 0 , & bytes, is_root) ;
588
- ( actual, bytes)
588
+ ( actual, bytes. as_ref ( ) )
589
589
} ;
590
590
if actual != expected {
591
591
return Err ( EncodeError :: LeafHashMismatch ( start_chunk) ) ;
592
592
}
593
593
encoded
594
- . write_bytes ( to_write)
594
+ . write_all ( & to_write)
595
595
. await
596
596
. map_err ( |e| EncodeError :: maybe_leaf_write ( e, start_chunk) ) ?;
597
597
}
0 commit comments