Trait ripgen_lib::RipGenIterator
source · [−]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
fn get_domains_iter(&self) -> D
fn get_domains_iter(&self) -> D
Returns an iterator over the underlying DomainComponents.
fn get_words_iter(&self) -> W
fn get_words_iter(&self) -> W
Returns an iterator over the underlying wordlist.
Provided methods
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,
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,
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;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()));