Hacker News new | past | comments | ask | show | jobs | submit login

I think an ergonomic way to do that would to have read return not an integer, but a slice of that integer’s length.

Problem would be: how do you express “you can only access the buffer you sent me through the read-only slice I returned, but you have to free that same buffer when you’re done calling me?

I think that can be done using a function creating a read buffer for a given input stream that

- during calls to read is ‘owned for writing’ by that stream (so, it has to borrow a capability that the creator of the buffer doesn’t have. I don’t think Rust currently supports that)

- where stream.read returns a read only slice whose lifetime is bound to that of the buffer

So, the creator of the buffer can only pass it to read to get a slice back that contains precisely the data read.

The stream can write to the entire buffer.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: