lance_encoding/encodings/physical/
constant.rs1use crate::{
7 buffer::LanceBuffer,
8 compression::BlockDecompressor,
9 data::{ConstantDataBlock, DataBlock},
10};
11
12use lance_core::Result;
13
14#[derive(Debug)]
16pub struct ConstantDecompressor {
17 scalar: LanceBuffer,
18}
19
20impl ConstantDecompressor {
21 pub fn new(scalar: LanceBuffer) -> Self {
22 Self {
23 scalar: scalar.into_borrowed(),
24 }
25 }
26}
27
28impl BlockDecompressor for ConstantDecompressor {
29 fn decompress(&self, _data: LanceBuffer, num_values: u64) -> Result<DataBlock> {
30 Ok(DataBlock::Constant(ConstantDataBlock {
31 data: self.scalar.try_clone().unwrap(),
32 num_values,
33 }))
34 }
35}