revert-revert-erasure and erasure fixes (#3833)
* fix erasure, more tests for full blobs, more metrics
* Revert "Revert "Use Rust erasure library and turn on erasure (#3768)" (#3827)"
This reverts commit 4b8cb72977
.
This commit is contained in:
@@ -376,7 +376,11 @@ pub const BLOB_FLAG_IS_CODING: u32 = 0x1;
|
||||
impl Blob {
|
||||
pub fn new(data: &[u8]) -> Self {
|
||||
let mut blob = Self::default();
|
||||
|
||||
assert!(data.len() <= blob.data.len());
|
||||
|
||||
let data_len = cmp::min(data.len(), blob.data.len());
|
||||
|
||||
let bytes = &data[..data_len];
|
||||
blob.data[..data_len].copy_from_slice(bytes);
|
||||
blob.meta.size = blob.data_size() as usize;
|
||||
@@ -463,8 +467,8 @@ impl Blob {
|
||||
LittleEndian::read_u64(&self.data[SIZE_RANGE])
|
||||
}
|
||||
|
||||
pub fn set_data_size(&mut self, ix: u64) {
|
||||
LittleEndian::write_u64(&mut self.data[SIZE_RANGE], ix);
|
||||
pub fn set_data_size(&mut self, size: u64) {
|
||||
LittleEndian::write_u64(&mut self.data[SIZE_RANGE], size);
|
||||
}
|
||||
|
||||
pub fn data(&self) -> &[u8] {
|
||||
|
Reference in New Issue
Block a user