Cleaner

Struct Cleaner 

Source
pub struct Cleaner<'a> {
    pub docs: Cow<'a, CleanerDocs>,
    pub params: Params<'a>,
    pub commons: Cow<'a, Commons>,
    pub actions: Cow<'a, [Action]>,
}
Expand description

The config that determines all behavior of how URLs are cleaned.

Fields§

§docs: Cow<'a, CleanerDocs>

The documentation.

Defaults to an empty CleanerDocs.

§params: Params<'a>

Tuning shared between all Tasks spawned with this Cleaner.

Defaults to an empty Params.

§commons: Cow<'a, Commons>

Basically functions.

Defaults to an empty Commons.

§actions: Cow<'a, [Action]>

The Actions to apply.

Defaults to an empty Vec.

Implementations§

Source§

impl<'a> Cleaner<'a>

Source

pub fn borrowed(&'a self) -> Self

Create a new Self that Cow::Borroweds all fields.

Basically a very cheap Clone that you can apply ParamsDiffs to.

Source

pub fn load_from_file<T: AsRef<Path>>( path: T, ) -> Result<Cleaner<'static>, GetCleanerError>

Load Self from a JSON file.

§Errors

If the call to std::fs::read_to_string returns an error, that error is returned.

If the call to serde_json::from_str returns an error, that error is returned.

Source

pub fn get_default() -> Result<&'static Cleaner<'static>, GetCleanerError>

Gets the default Self compiled into the binary itself.

If you know you’re only going to get the default config once, Self::get_default_no_cache is better because you can apply ParamsDiffs to it without Clone::cloneing.

§Errors

If the call to Self::get_default_no_cache returns an error, that error is returned. If the call to Self::get_default_no_cache returns an error, that error is returned.

§Examples
use url_cleaner_engine::types::*;

Cleaner::get_default().unwrap();
Source

pub fn get_default_no_cache() -> Result<Cleaner<'static>, GetCleanerError>

Deserializes DEFAULT_CLEANER_STR and returns it without caching.

If you’re getting the default config often and rarely using ParamsDiffs, Self::get_default may be better due to it only deserializing the config once.

§Errors

If the call to serde_json::from_str returns an error, that error is returned.

§Examples
use url_cleaner_engine::types::*;

Cleaner::get_default_no_cache().unwrap();
Source

pub fn load_or_get_default<T: AsRef<Path>>( path: Option<T>, ) -> Result<Cow<'static, Self>, GetCleanerError>

If path is Some, returns the result of Self::load_from_file in a Cow::Owned.

If path is None, returns the result of Self::get_default in a Cow::Borrowed.

§Errors

If the call to Self::load_from_file returns an error, that error is returned.

If the call to Self::get_default returns an error, that error is returned.

§Examples
use url_cleaner_engine::types::*;

assert_eq!(
    Cleaner::get_default().unwrap(),
    &*Cleaner::load_or_get_default(None::<&str>).unwrap()
);

assert_eq!(
    Cleaner::get_default().unwrap(),
    &*Cleaner::load_or_get_default(Some("default-cleaner.json")).unwrap()
);
Source

pub fn load_or_get_default_no_cache<T: AsRef<Path>>( path: Option<T>, ) -> Result<Self, GetCleanerError>

If path is Some, returns the result of Self::load_from_file.

If path is None, returns the result of Self::get_default_no_cache.

§Errors

If the call to Self::load_from_file returns an error, that error is returned.

If the call to Self::get_default_no_cache returns an error, that error is returned.

§Examples
use url_cleaner_engine::types::*;

assert_eq!(
    Cleaner::get_default_no_cache().unwrap(),
    Cleaner::load_or_get_default_no_cache(None::<&str>).unwrap()
);

assert_eq!(
    Cleaner::get_default_no_cache().unwrap(),
    Cleaner::load_or_get_default_no_cache(Some("default-cleaner.json")).unwrap()
);
Source

pub fn apply( &self, task_state: &mut TaskState<'_>, ) -> Result<(), ApplyCleanerError>

Applies each Action in Self::actions in order to the provided TaskState.

If an error is returned, task_state may be left in a partially modified state.

§Errors

If any call to Action::apply returns an error, that error is returned.

Source

pub fn run_tests(&self, tests: Tests)

Runs the provided Tests, panicking if any of them fail.

§Panics

If any Test fails, panics.

Source

pub fn assert_suitability(&self)

Asserts the suitability of self to be URL Cleaner’s default config.

Exact behavior is unspecified and changes are not considered breaking.

§Panics

If self is deemed unsuitable to be URL Cleaner’s default config, panics.

§Examples
use url_cleaner_engine::types::*;

Cleaner::get_default().unwrap().assert_suitability();
Source§

impl<'a> Cleaner<'a>

Source

pub fn with_profiles(self, profiles: ProfilesConfig) -> ProfiledCleaner<'a>

Convert the Cleaner into a ProfiledCleaner using the specified ProfilesConfig.

Trait Implementations§

Source§

impl<'a> Clone for Cleaner<'a>

Source§

fn clone(&self) -> Cleaner<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Cleaner<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for Cleaner<'a>

Source§

fn default() -> Cleaner<'a>

Returns the “default value” for a type. Read more
Source§

impl<'de, 'a> Deserialize<'de> for Cleaner<'a>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'a> PartialEq for Cleaner<'a>

Source§

fn eq(&self, other: &Cleaner<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Serialize for Cleaner<'a>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<'a> Eq for Cleaner<'a>

Source§

impl<'a> StructuralPartialEq for Cleaner<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Cleaner<'a>

§

impl<'a> RefUnwindSafe for Cleaner<'a>

§

impl<'a> Send for Cleaner<'a>

§

impl<'a> Sync for Cleaner<'a>

§

impl<'a> Unpin for Cleaner<'a>

§

impl<'a> UnwindSafe for Cleaner<'a>

Blanket Implementations§

Source§

impl<T> AggregateExpressionMethods for T

Source§

fn aggregate_distinct(self) -> Self::Output
where Self: DistinctDsl,

DISTINCT modifier for aggregate functions Read more
Source§

fn aggregate_all(self) -> Self::Output
where Self: AllDsl,

ALL modifier for aggregate functions Read more
Source§

fn aggregate_filter<P>(self, f: P) -> Self::Output
where P: AsExpression<Bool>, Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,

Add an aggregate function filter Read more
Source§

fn aggregate_order<O>(self, o: O) -> Self::Output
where Self: OrderAggregateDsl<O>,

Add an aggregate function order Read more
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoSql for T

Source§

fn into_sql<T>(self) -> Self::Expression

Convert self to an expression for Diesel’s query builder. Read more
Source§

fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WindowExpressionMethods for T

Source§

fn over(self) -> Self::Output
where Self: OverDsl,

Turn a function call into a window function call Read more
Source§

fn window_filter<P>(self, f: P) -> Self::Output
where P: AsExpression<Bool>, Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,

Add a filter to the current window function Read more
Source§

fn partition_by<E>(self, expr: E) -> Self::Output
where Self: PartitionByDsl<E>,

Add a partition clause to the current window function Read more
Source§

fn window_order<E>(self, expr: E) -> Self::Output
where Self: OrderWindowDsl<E>,

Add a order clause to the current window function Read more
Source§

fn frame_by<E>(self, expr: E) -> Self::Output
where Self: FrameDsl<E>,

Add a frame clause to the current window function Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,