Update src/parser.rs
Browse files- src/parser.rs +1 -3
src/parser.rs
CHANGED
|
@@ -3,7 +3,7 @@ use memmap2::Mmap;
|
|
| 3 |
use quick_xml::events::Event;
|
| 4 |
use quick_xml::reader::Reader;
|
| 5 |
use std::fs::File;
|
| 6 |
-
use std::io::{
|
| 7 |
use std::path::Path;
|
| 8 |
use thiserror::Error;
|
| 9 |
|
|
@@ -29,7 +29,6 @@ pub struct ParsedDocument {
|
|
| 29 |
pub struct DocumentParser;
|
| 30 |
|
| 31 |
impl DocumentParser {
|
| 32 |
-
/// Ingests a file with zero-copy mmap for large files or standard read for small files.
|
| 33 |
pub fn parse_file<P: AsRef<Path>>(path: P) -> Result<ParsedDocument> {
|
| 34 |
let path_ref = path.as_ref();
|
| 35 |
let metadata = std::fs::metadata(path_ref)
|
|
@@ -51,7 +50,6 @@ impl DocumentParser {
|
|
| 51 |
|
| 52 |
let file = File::open(path_ref)?;
|
| 53 |
|
| 54 |
-
// Zero-copy memory map for files >= 16 KB; heap read for smaller files
|
| 55 |
let content = if size_bytes >= 16 * 1024 {
|
| 56 |
let mmap = unsafe { Mmap::map(&file)? };
|
| 57 |
Self::extract_content_from_bytes(&mmap, &extension)?
|
|
|
|
| 3 |
use quick_xml::events::Event;
|
| 4 |
use quick_xml::reader::Reader;
|
| 5 |
use std::fs::File;
|
| 6 |
+
use std::io::{Cursor, Read};
|
| 7 |
use std::path::Path;
|
| 8 |
use thiserror::Error;
|
| 9 |
|
|
|
|
| 29 |
pub struct DocumentParser;
|
| 30 |
|
| 31 |
impl DocumentParser {
|
|
|
|
| 32 |
pub fn parse_file<P: AsRef<Path>>(path: P) -> Result<ParsedDocument> {
|
| 33 |
let path_ref = path.as_ref();
|
| 34 |
let metadata = std::fs::metadata(path_ref)
|
|
|
|
| 50 |
|
| 51 |
let file = File::open(path_ref)?;
|
| 52 |
|
|
|
|
| 53 |
let content = if size_bytes >= 16 * 1024 {
|
| 54 |
let mmap = unsafe { Mmap::map(&file)? };
|
| 55 |
Self::extract_content_from_bytes(&mmap, &extension)?
|