uwb_core: polish BufferedFile::flush_buffer() method
This CL changes BufferedFile::flush_buffer() method to use
File::write_all() instead of write() method, then we could
make sure all the buffer is written. Also, the method should call
File::flush() after writing the buffer.
Bug: 256721796
Test: cargo test
Change-Id: I06b3eda073bf12bd2ababcffff6c9bdb6fd843d7
diff --git a/src/rust/uwb_core/src/uci/pcapng_uci_logger_factory.rs b/src/rust/uwb_core/src/uci/pcapng_uci_logger_factory.rs
index 5024706..daaed2a 100644
--- a/src/rust/uwb_core/src/uci/pcapng_uci_logger_factory.rs
+++ b/src/rust/uwb_core/src/uci/pcapng_uci_logger_factory.rs
@@ -395,14 +395,11 @@
/// Clears buffer.
fn flush_buffer(&mut self) -> Option<()> {
- match self.file.write(&self.buffer) {
- Ok(write_size) => {
- self.written_size += write_size;
- self.buffer.clear();
- Some(())
- }
- Err(_) => None,
- }
+ self.file.write_all(&self.buffer).ok()?;
+ self.written_size += self.buffer.len();
+ self.buffer.clear();
+
+ self.file.flush().ok()
}
}