pub trait RipGenIterator<'manager, 'domain, D, W> where
    Self: Iterator<Item = String> + Sized,
    D: Iterator<Item = &'manager DomainComponents<'domain>> + Clone,
    W: Iterator<Item = &'manager &'domain str> + Clone,
    'domain: 'manager, 
{ fn get_domains_iter(&self) -> D;
fn get_words_iter(&self) -> W; fn chain_transform<F, O>(
        self,
        transform: F
    ) -> RipGenChain<'manager, 'domain, Self, RipGenTransform<'manager, 'domain, F, D, W, O>, D, W>
Notable traits for RipGenChain<'manager, 'domain, L, R, D, W>
impl<'manager, 'domain, L, R, D, W> Iterator for RipGenChain<'manager, 'domain, L, R, D, W> where
    L: RipGenIterator<'manager, 'domain, D, W>,
    R: RipGenIterator<'manager, 'domain, D, W>,
    D: Iterator<Item = &'manager DomainComponents<'domain>> + Clone,
    W: Iterator<Item = &'manager &'domain str> + Clone,
    'domain: 'manager, 
type Item = String;

    where
        F: Fn(&'manager DomainComponents<'domain>, W) -> O,
        O: Iterator<Item = String>,
        'domain: 'manager
, { ... } }
Expand description

Describes an iterator that can be apart of a RipGenChain.

Required methods

Returns an iterator over the underlying DomainComponents.

Returns an iterator over the underlying wordlist.

Provided methods

Chain this RipGenIterator with another RipGenIterator over the specified transform.

let domains = vec!["example.com"];
let domain_iter = domains.iter().map(|elem| *elem);
let wordlist = vec![];
let wordlist_iter = wordlist.iter().map(|elem| *elem);

let manager = RipGenManager::new(domain_iter, wordlist_iter)
    .expect("Failed to parse domains.");

let mut iter = manager
    .transform(add_prefix("admin"))
    .chain_transform(add_prefix("internal"))
    .chain_transform(add_prefix("manager"));

assert_eq!(iter.next(), Some("admin.example.com".to_string()));
assert_eq!(iter.next(), Some("internal.example.com".to_string()));
assert_eq!(iter.next(), Some("manager.example.com".to_string()));

Implementors