tree 56154483a3fa9782c3f681e5f410224606823d6b
parent 0f0d634788f90e411b5961ce019fa15cc9d5ddab
author Robert Hahn <hahnr@google.com> 1548956581 -0800
committer Robert Hahn <hahnr@google.com> 1548967796 -0800

[wlan][mlme] Introduce OutBuf

OutBuf is used to return a buffer to Fuchsia's C++ MLME.
Unlike InBuf, it will not automatically return and free the buffer
once it goes out of scope.

The key idea is to ask C++ MLME for an InBuf via Rust's
BufferProvider, write to the buffer and once all operations
executed successfully turn the InBuf into an OutBuf and return
it to C++.
This system ensures that all buffers taken from the C++ MLME
are guaranteed to be returned. Example code:

fn foo(mut buf: InBuf, bar: usize) -> Result<OutBuf, Error> {
   ensure!(bar > 10, "unexpected bar");
   let written_bytes = write_frame(&mut buf)?;
   Ok(OutBuf::from(buf, written_bytes))
}

Test=Included

Change-Id: I02b05b046f8718bade31c421a23b5ce324cf9bc9
