Path: blob/main/crates/polars-stream/src/nodes/io_sources/ndjson/builder.rs
6939 views
use std::sync::Arc;12use polars_core::config;3use polars_io::cloud::CloudOptions;4use polars_plan::dsl::ScanSource;56use super::{FileReader, NDJsonFileReader};7use crate::nodes::io_sources::multi_scan::reader_interface::builder::FileReaderBuilder;8use crate::nodes::io_sources::multi_scan::reader_interface::capabilities::ReaderCapabilities;910#[cfg(feature = "json")]11impl FileReaderBuilder for Arc<polars_plan::dsl::NDJsonReadOptions> {12fn reader_name(&self) -> &str {13"ndjson"14}1516fn reader_capabilities(&self) -> ReaderCapabilities {17use ReaderCapabilities as RC;1819RC::NEEDS_FILE_CACHE_INIT | RC::ROW_INDEX | RC::PRE_SLICE | RC::NEGATIVE_PRE_SLICE20}2122fn build_file_reader(23&self,24source: ScanSource,25cloud_options: Option<Arc<CloudOptions>>,26_scan_source_idx: usize,27) -> Box<dyn FileReader> {28let scan_source = source;29let options = self.clone();30let verbose = config::verbose();3132let reader = NDJsonFileReader {33scan_source,34cloud_options,35options,36cached_bytes: None,37verbose,38};3940Box::new(reader) as Box<dyn FileReader>41}42}434445