pub struct Generator<'a, T: Clone> { /* private fields */ }
Expand description
Generator for yielding restricted tuple
Implementations§
Source§impl<'a, T: 'a + Clone> Generator<'a, T>
impl<'a, T: 'a + Clone> Generator<'a, T>
Sourcepub fn new(
cache: &mut CountingFunctionCache,
sets: &'a [Vec<T>],
) -> Generator<'a, T>
pub fn new( cache: &mut CountingFunctionCache, sets: &'a [Vec<T>], ) -> Generator<'a, T>
Creates a generator.
§Example
let sets: Vec<Vec<u32>> = vec![vec![10, 20], vec![30, 40]];
let mut cache = CountingFunctionCache::default();
let generator = Generator::new(&mut cache, &sets);
Sourcepub fn generate(&self, length: usize, value: BigUint) -> Vec<T>
pub fn generate(&self, length: usize, value: BigUint) -> Vec<T>
Generates a restricted tuple with given length and value.
§Panics
Panics when no restricted tuple can be generated. This could happen if the length is smaller than the number of sets, or if there is any empty set in the provided sets, or the provided sets itself is empty.
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> Freeze for Generator<'a, T>
impl<'a, T> RefUnwindSafe for Generator<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Generator<'a, T>where
T: Sync,
impl<'a, T> Sync for Generator<'a, T>where
T: Sync,
impl<'a, T> Unpin for Generator<'a, T>
impl<'a, T> UnwindSafe for Generator<'a, T>where
T: RefUnwindSafe,
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
Mutably borrows from an owned value. Read more