[refactor-block] simplify some more
ci/woodpecker/pr/debug Pipeline was successful Details
ci/woodpecker/deployment/debug Pipeline was successful Details
ci/woodpecker/deployment/release/3 Pipeline was successful Details
ci/woodpecker/deployment/release/2 Pipeline was successful Details
ci/woodpecker/deployment/release/1 Pipeline was successful Details
ci/woodpecker/deployment/release/4 Pipeline was successful Details
ci/woodpecker/deployment/publish Pipeline was successful Details

This commit is contained in:
Alex 2024-02-23 12:26:35 +01:00
parent e9c42bca34
commit 6ee691e65f
Signed by: lx
GPG Key ID: 0E496D15096376BE
2 changed files with 5 additions and 22 deletions

View File

@ -62,20 +62,9 @@ impl<T> DataBlockElem<T> {
pub fn as_parts_ref(&self) -> (DataBlockHeader, &T) {
(self.header, &self.elem)
}
/// Query whether this block is compressed
pub fn is_compressed(&self) -> bool {
self.header.is_compressed()
}
}
impl DataBlock {
/// Get the inner, possibly compressed buffer. You should probably use [`DataBlock::verify_get`]
/// instead
pub fn inner_buffer(&self) -> &[u8] {
&self.elem
}
/// Verify data integrity. Does not return the buffer content.
pub fn verify(&self, hash: Hash) -> Result<(), Error> {
match self.header {
@ -97,16 +86,10 @@ impl DataBlock {
tokio::task::spawn_blocking(move || {
if let Some(level) = level {
if let Ok(data_compressed) = zstd_encode(&data[..], level) {
return DataBlock {
header: DataBlockHeader::Compressed,
elem: data_compressed.into(),
};
return DataBlock::compressed(data_compressed.into());
}
}
DataBlock {
header: DataBlockHeader::Plain,
elem: data.into(),
}
DataBlock::plain(data.into())
})
.await
.unwrap()

View File

@ -690,8 +690,8 @@ impl BlockManagerLocked {
mgr: &BlockManager,
existing_path: Option<DataBlockPath>,
) -> Result<(), Error> {
let compressed = data.is_compressed();
let data = data.inner_buffer();
let (header, data) = data.as_parts_ref();
let compressed = header.is_compressed();
let directory = mgr.data_layout.load().primary_block_dir(hash);
@ -805,7 +805,7 @@ impl BlockManagerLocked {
let data = mgr.read_block_from(hash, &wrong_path).await?;
self.write_block_inner(hash, &data, mgr, Some(wrong_path))
.await?;
Ok(data.inner_buffer().len())
Ok(data.as_parts_ref().1.len())
}
}