pub struct ReferenceExtractorRegistry { /* private fields */ }Expand description
Interprets an ordered extractor catalog in memory.
Implementations§
Source§impl ReferenceExtractorRegistry
impl ReferenceExtractorRegistry
Sourcepub fn push(&mut self, extractor: ReferenceExtractor)
pub fn push(&mut self, extractor: ReferenceExtractor)
Appends an extractor at the next catalog selection position.
Sourcepub fn applications(&self) -> Vec<ExtractorKey>
pub fn applications(&self) -> Vec<ExtractorKey>
Observes extractor applications in application order.
Trait Implementations§
Source§impl Debug for ReferenceExtractorRegistry
impl Debug for ReferenceExtractorRegistry
Source§impl Default for ReferenceExtractorRegistry
impl Default for ReferenceExtractorRegistry
Source§impl ExtractionApplyAlg for ReferenceExtractorRegistry
impl ExtractionApplyAlg for ReferenceExtractorRegistry
Source§type Error = ReferenceExtractionError
type Error = ReferenceExtractionError
Source§fn extract_with(
&self,
extractor: &ExtractorKey,
_url: &str,
) -> Result<Extraction, Self::Error>
fn extract_with( &self, extractor: &ExtractorKey, _url: &str, ) -> Result<Extraction, Self::Error>
Source§impl ExtractionCatalogAlg for ReferenceExtractorRegistry
impl ExtractionCatalogAlg for ReferenceExtractorRegistry
Source§fn extractor_keys(&self) -> impl Iterator<Item = &ExtractorKey>
fn extractor_keys(&self) -> impl Iterator<Item = &ExtractorKey>
Source§fn extractor_accepts(&self, extractor: &ExtractorKey, url: &str) -> bool
fn extractor_accepts(&self, extractor: &ExtractorKey, url: &str) -> bool
Source§impl MediaSorts for ReferenceExtractorRegistry
impl MediaSorts for ReferenceExtractorRegistry
Source§type Extraction = Extraction
type Extraction = Extraction
Source§type Extractor = ExtractorKey
type Extractor = ExtractorKey
Auto Trait Implementations§
impl !Freeze for ReferenceExtractorRegistry
impl !RefUnwindSafe for ReferenceExtractorRegistry
impl !Sync for ReferenceExtractorRegistry
impl Send for ReferenceExtractorRegistry
impl Unpin for ReferenceExtractorRegistry
impl UnsafeUnpin for ReferenceExtractorRegistry
impl UnwindSafe for ReferenceExtractorRegistry
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<This, Extractor, Extraction> ExtractionExt<This, Extractor, Extraction> for Thiswhere
This: ExtractionCatalogAlg<Extractor = Extractor, Extractor = Extractor, Extraction = Extraction> + ExtractionApplyAlg,
impl<This, Extractor, Extraction> ExtractionExt<This, Extractor, Extraction> for Thiswhere
This: ExtractionCatalogAlg<Extractor = Extractor, Extractor = Extractor, Extraction = Extraction> + ExtractionApplyAlg,
Source§fn choose_extractor(&self, url: &str) -> Option<&Extractor>
fn choose_extractor(&self, url: &str) -> Option<&Extractor>
Chooses the first extractor accepting the URL.
Source§fn extract_url(
&self,
url: &str,
) -> Result<Extraction, ExtractUrlError<<This as ExtractionApplyAlg>::Error>>
fn extract_url( &self, url: &str, ) -> Result<Extraction, ExtractUrlError<<This as ExtractionApplyAlg>::Error>>
Extracts a URL through the first accepting extractor.
§Errors
Returns ExtractUrlError::Unsupported when no extractor accepts the URL, or wraps the
selected extractor’s failure in ExtractUrlError::Extractor.
Source§impl<This> GaugeLaws<This> for This
impl<This> GaugeLaws<This> for This
Source§fn gauge_laws(&self) -> Result<(), Error>
fn gauge_laws(&self) -> Result<(), Error>
Checks that a gauge states a share without claiming more resolution than it has.
The laws checked are:
- a gauge occupies its stated width whatever share it states;
- no share is stated as filled before it is reached, and none is stated twice;
- nothing stated is nothing filled, and everything stated fills the whole track;
- the stated text occupies exactly one cell per counted cell.
§Errors
Returns the first violated law.
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 moreSource§impl<This> IntoExt<This> for This
impl<This> IntoExt<This> for This
Source§fn to<R>(self) -> Rwhere
This: Into<R>,
fn to<R>(self) -> Rwhere
This: Into<R>,
A version of Into::into function that can be used to explicitly specify the target
conversion type.
use alux_sdk::*;
// `Into` requires context to infer the type,
let _: i64 = Into::into(42_i8);
// The opposite `From` requires context to infer the type,
let _: i64 = From::from(42_i8);
// `.to()` can be used in the same way as a postfix function (the same as `.into()`),
let _: i64 = 42_i8.to();
// but also with the type specified explicitly.
let _ = 42_i8.to::<i64>();
// Especially useful to chain multiple conversions inline.
let _: i64 = 42_i8.to::<i16>().to::<i32>().into();Source§impl<This> IntoIteratorExt<This> for This
impl<This> IntoIteratorExt<This> for This
Source§fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
A variant of the try_collect and collect_vec combined function from the Itertools
library. The materialized value is a Vec inside a Result object.
Returns the first error without collecting later values.
use alux_sdk::*;
let values = [Ok::<_, &str>(1), Ok(2), Ok(3)]
.into_iter()
.try_collect_vec();
assert_eq!(values, Ok(vec![1, 2, 3]));Source§fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
Takes exactly n elements from the iterator.
Returns Some(Vec<T>) if the iterator yields exactly n elements,
otherwise returns None.
use alux_sdk::*;
let v = [1, 2, 3];
assert_eq!(v.iter().copied().collect_exact(3), Some(vec![1, 2, 3]));
assert_eq!(v.iter().copied().collect_exact(4), None);
assert_eq!(v.iter().copied().collect_exact(2), None);Source§fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
Efficiently splits an iterator of Result<(A, B), E> into two Vecs, short-circuiting on error.
Consumes the iterator, collecting all A elements into one vector and all B elements into another,
without first allocating an intermediate vector of tuples. Returns the tuple (Vec<A>, Vec<B>) on success,
or the first error encountered.
use alux_sdk::*;
let input = vec![Ok((1, "x")), Ok((2, "y"))];
let (xs, ys) = input.try_unzip::<_, _, ()>().unwrap();
assert_eq!(xs, vec![1, 2]);
assert_eq!(ys, vec!["x", "y"]);