pub struct ExtractorRegistry { /* private fields */ }Expand description
Registry of the available extractors. Markdown takes precedence over
plain text for .md; everything claims by extension.
Implementations§
Source§impl ExtractorRegistry
impl ExtractorRegistry
Sourcepub fn new_with(extractors: Vec<Box<dyn DocumentExtractor>>) -> Self
pub fn new_with(extractors: Vec<Box<dyn DocumentExtractor>>) -> Self
Build a registry with a custom set of extractors (useful in tests).
Sourcepub fn select(&self, extension: &str) -> Option<&dyn DocumentExtractor>
pub fn select(&self, extension: &str) -> Option<&dyn DocumentExtractor>
The extractor claiming extension, if any.
Sourcepub fn extract_with_context(
&self,
path: &ValidatedPath,
context: &ExtractContext,
) -> OrbokResult<ExtractOutput>
pub fn extract_with_context( &self, path: &ValidatedPath, context: &ExtractContext, ) -> OrbokResult<ExtractOutput>
Extract using resource limits. Unknown types are a typed
UnsupportedType failure — never a panic, never a silent skip.
Prefer this over [extract] for production code paths.
Sourcepub fn extract_safely(
&self,
path: &ValidatedPath,
context: &ExtractContext,
) -> OrbokResult<ExtractOutput>
pub fn extract_safely( &self, path: &ValidatedPath, context: &ExtractContext, ) -> OrbokResult<ExtractOutput>
Extract with panic isolation (RFC-044 §11).
Wraps the extractor call in catch_unwind. A parser panic is
caught and returned as ErrorCategory::ParserPanic instead of
crashing the worker thread.
The user-facing layer must translate ParserPanic to a plain
message like “This file could not be prepared.”
Sourcepub fn extract(&self, path: &ValidatedPath) -> OrbokResult<ExtractOutput>
pub fn extract(&self, path: &ValidatedPath) -> OrbokResult<ExtractOutput>
Legacy entry point (no limits, no panic isolation).
Kept for compatibility during the migration period. New code
should call [extract_safely] instead.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ExtractorRegistry
impl !UnwindSafe for ExtractorRegistry
impl Freeze for ExtractorRegistry
impl Send for ExtractorRegistry
impl Sync for ExtractorRegistry
impl Unpin for ExtractorRegistry
impl UnsafeUnpin for ExtractorRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more