x
This commit is contained in:
@@ -6,7 +6,10 @@ use std::{
|
||||
};
|
||||
use tracing::debug;
|
||||
|
||||
use crate::{value::{Item, PileValue, SyncReadBridge}, extract::traits::ObjectExtractor};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
};
|
||||
|
||||
pub struct EpubTextExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -6,7 +6,10 @@ use std::{
|
||||
};
|
||||
use tracing::trace;
|
||||
|
||||
use crate::{value::{Item, PileValue, SyncReadBridge}, extract::traits::ObjectExtractor};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
};
|
||||
|
||||
pub struct ExifExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -8,8 +8,8 @@ use std::{
|
||||
};
|
||||
|
||||
use crate::{
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
extract::traits::{ListExtractor, ObjectExtractor},
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
};
|
||||
|
||||
pub struct FlacImagesExtractor {
|
||||
|
||||
@@ -5,7 +5,10 @@ use std::{
|
||||
sync::{Arc, OnceLock},
|
||||
};
|
||||
|
||||
use crate::{value::{Item, PileValue}, extract::traits::ObjectExtractor};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue},
|
||||
};
|
||||
|
||||
pub struct FsExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -12,7 +12,10 @@ pub use pdf_meta::*;
|
||||
mod pdf_text;
|
||||
pub use pdf_text::*;
|
||||
|
||||
use crate::{value::{Item, PileValue}, extract::traits::ObjectExtractor};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue},
|
||||
};
|
||||
|
||||
pub struct PdfExtractor {
|
||||
text: Arc<PdfTextExtractor>,
|
||||
|
||||
@@ -8,7 +8,10 @@ use std::{
|
||||
};
|
||||
use tracing::trace;
|
||||
|
||||
use crate::{extract::traits::ObjectExtractor, value::{Item, PileValue, SyncReadBridge}};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
};
|
||||
|
||||
pub struct PdfMetaExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -8,7 +8,10 @@ use std::{
|
||||
};
|
||||
use tracing::trace;
|
||||
|
||||
use crate::{extract::traits::ObjectExtractor, value::{Item, PileValue, SyncReadBridge}};
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue, SyncReadBridge},
|
||||
};
|
||||
|
||||
pub struct PdfTextExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use pile_config::Label;
|
||||
use std::sync::OnceLock;
|
||||
|
||||
use crate::{
|
||||
value::{Item, PileValue},
|
||||
extract::traits::ObjectExtractor,
|
||||
};
|
||||
use super::TomlExtractor;
|
||||
use crate::{
|
||||
extract::traits::ObjectExtractor,
|
||||
value::{Item, PileValue},
|
||||
};
|
||||
|
||||
pub struct SidecarExtractor {
|
||||
item: Item,
|
||||
|
||||
@@ -3,18 +3,11 @@ use std::collections::HashMap;
|
||||
|
||||
use crate::{extract::traits::ObjectExtractor, value::PileValue};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct MapExtractor {
|
||||
pub inner: HashMap<Label, PileValue>,
|
||||
}
|
||||
|
||||
impl Default for MapExtractor {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
inner: HashMap::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait::async_trait]
|
||||
impl ObjectExtractor for MapExtractor {
|
||||
async fn field(&self, name: &Label) -> Result<Option<PileValue>, std::io::Error> {
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
use crate::{extract::traits::ListExtractor, value::PileValue};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct VecExtractor {
|
||||
pub inner: Vec<PileValue>,
|
||||
}
|
||||
|
||||
impl Default for VecExtractor {
|
||||
fn default() -> Self {
|
||||
Self { inner: Vec::new() }
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait::async_trait]
|
||||
impl ListExtractor for VecExtractor {
|
||||
async fn get(&self, idx: usize) -> Result<Option<PileValue>, std::io::Error> {
|
||||
|
||||
@@ -4,5 +4,6 @@ pub use item::*;
|
||||
mod readers;
|
||||
pub use readers::*;
|
||||
|
||||
#[expect(clippy::module_inception)]
|
||||
mod value;
|
||||
pub use value::*;
|
||||
|
||||
@@ -69,7 +69,7 @@ impl PileValue {
|
||||
Self::U64(_) => Arc::new(MapExtractor::default()),
|
||||
Self::I64(_) => Arc::new(MapExtractor::default()),
|
||||
Self::Array(_) => Arc::new(MapExtractor::default()),
|
||||
Self::String(s) => Arc::new(StringExtractor::new(&s)),
|
||||
Self::String(s) => Arc::new(StringExtractor::new(s)),
|
||||
Self::Blob { .. } => Arc::new(MapExtractor::default()),
|
||||
Self::ListExtractor(_) => Arc::new(MapExtractor::default()),
|
||||
Self::ObjectExtractor(e) => e.clone(),
|
||||
@@ -106,7 +106,7 @@ impl PileValue {
|
||||
}
|
||||
};
|
||||
|
||||
out = e.field(&field).await?;
|
||||
out = e.field(field).await?;
|
||||
}
|
||||
|
||||
PathSegment::Index(idx) => {
|
||||
|
||||
Reference in New Issue
Block a user