MCPcopy Create free account
hub / github.com/apache/arrow-rs / set_data

Method set_data

parquet/src/column/reader/decoder.rs:199–229  ·  view source on GitHub ↗
(
        &mut self,
        mut encoding: Encoding,
        data: Bytes,
        num_levels: usize,
        num_values: Option<usize>,
    )

Source from the content-addressed store, hash-verified

197 }
198
199 fn set_data(
200 &mut self,
201 mut encoding: Encoding,
202 data: Bytes,
203 num_levels: usize,
204 num_values: Option<usize>,
205 ) -> Result<()> {
206 if encoding == Encoding::PLAIN_DICTIONARY {
207 encoding = Encoding::RLE_DICTIONARY;
208 }
209
210 let decoder = if encoding == Encoding::RLE_DICTIONARY {
211 self.decoders[encoding as usize]
212 .as_mut()
213 .expect("Decoder for dict should have been set")
214 } else {
215 let slot = encoding as usize;
216 if self.decoders[slot].is_none() {
217 let data_decoder = get_decoder::<T>(self.descr.clone(), encoding)?;
218 self.decoders[slot] = Some(data_decoder);
219 self.decoder_mask.insert(encoding);
220 }
221 self.decoders[slot]
222 .as_mut()
223 .expect("decoder should have been inserted")
224 };
225
226 decoder.set_data(data, num_values.unwrap_or(num_levels))?;
227 self.current_encoding = Some(encoding);
228 Ok(())
229 }
230
231 fn read(&mut self, out: &mut Self::Buffer, num_values: usize) -> Result<usize> {
232 let encoding = self

Calls 2

cloneMethod · 0.45
insertMethod · 0.45