This commit is contained in:
2026-03-11 10:37:07 -07:00
parent d052e793f3
commit 65482b848b
12 changed files with 34 additions and 27 deletions

View File

@@ -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,

View File

@@ -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,

View File

@@ -8,8 +8,8 @@ use std::{
};
use crate::{
value::{Item, PileValue, SyncReadBridge},
extract::traits::{ListExtractor, ObjectExtractor},
value::{Item, PileValue, SyncReadBridge},
};
pub struct FlacImagesExtractor {

View File

@@ -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,

View File

@@ -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>,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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> {

View File

@@ -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> {

View File

@@ -4,5 +4,6 @@ pub use item::*;
mod readers;
pub use readers::*;
#[expect(clippy::module_inception)]
mod value;
pub use value::*;

View File

@@ -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) => {