Ho una struttura con uno BufStream<T>
dove T: Read+Write
. BufStream
può essere un TcpStream
e mi piacerebbe leggere n byte da esso. Non una quantità fissa di byte in un buffer predefinito, ma ho una stringa/stream che indica il numero di byte da leggere successivamente.Come leggere un numero specifico di byte da uno stream?
C'è un bel modo per farlo?
Grazie .. non serve() consumare il lettore? Il mio caso è che ho un tcpstream (parte di una struct) da cui leggo le righe. A volte in mezzo non ho bisogno di leggere una riga ma una quantità specifica di byte. Dopo avrò bisogno di leggere di nuovo le righe ... – buster
Lo fa, ma "il lettore" può essere un '& mut R ', un riferimento temporaneo mutevole a un altro lettore. Take utilizza un'API di valore in modo che tutti i casi d'uso siano supportati. Questo modello appare in alcuni angoli diversi della ruggine. – bluss
@buster come sottolinea bluss, '& mut R' implementa anche la caratteristica' Leggi '. Il mio esempio lo usa con buoni risultati - è per questo che passo in '& mut reader' nel metodo principale dell'esempio. – Shepmaster