diff --git a/src/meta_plugin/binary.rs b/src/meta_plugin/binary.rs index 5b560fe..4b560c9 100644 --- a/src/meta_plugin/binary.rs +++ b/src/meta_plugin/binary.rs @@ -58,16 +58,21 @@ impl MetaPlugin for BinaryMetaPlugin { return; } - // Add data to buffer + // Calculate how much data we can still accept let remaining_capacity = self.max_buffer_size.saturating_sub(self.buffer.len()); - if remaining_capacity > 0 { - let bytes_to_copy = std::cmp::min(data.len(), remaining_capacity); - self.buffer.extend_from_slice(&data[..bytes_to_copy]); - - // If we've reached the buffer limit, save the metadata immediately - if self.buffer.len() >= self.max_buffer_size { - let _ = self.save_metadata(conn); - } + if remaining_capacity == 0 { + return; + } + + // Determine how much data to copy + let bytes_to_take = std::cmp::min(data.len(), remaining_capacity); + + // Add data to our buffer + self.buffer.extend_from_slice(&data[..bytes_to_take]); + + // If we've reached our buffer limit, save the metadata immediately + if self.buffer.len() >= self.max_buffer_size { + let _ = self.save_metadata(conn); } }