Struct gray_codes::GrayCode8 [] [src]

pub struct GrayCode8 { /* fields omitted */ }

Iterator over binary reflected Gray codes as u8 values

Examples

Generate all four-bit Gray codes.

use gray_codes::GrayCode32;

 assert_eq!(GrayCode32::with_bits(4).collect::<Vec<u32>>(),
            vec![0b0000,
                 0b0001,
                 0b0011,
                 0b0010,
                 0b0110,
                 0b0111,
                 0b0101,
                 0b0100,
                 0b1100,
                 0b1101,
                 0b1111,
                 0b1110,
                 0b1010,
                 0b1011,
                 0b1001,
                 0b1000]);

This could also be done with either of the other two constructors.

 for (x,y) in Iterator::zip(GrayCode32::with_bits(4),
                            GrayCode32::over_range(0..(1<<4))) {
     assert!(x == y);
 }

 for (x,y) in Iterator::zip(GrayCode32::with_bits(4),
                            GrayCode32::all().take(1<<4)) {
     assert!(x == y);
 }

Methods

impl GrayCode8
[src]

[src]

Construct an iterator over n-bit Gray codes.

Panics

Panics if bits exceeds the bit-width of the unsigned integer type.

[src]

Construct an iterator over a specific range of Gray codes.

The range bounds need not be powers of 2.

[src]

Construct an iterator over all Gray codes.

This iterator yields all codes that fit in the unsigned integer type.

[src]

Convert a binary value to the corresponding Gray code.

[src]

Convert a Gray code from the corresponding binary value.

[src]

Compute the next Gray code by flipping a single bit of the argument.

Trait Implementations

impl Clone for GrayCode8
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for GrayCode8
[src]

[src]

Formats the value using the given formatter.

impl Iterator for GrayCode8
[src]

The type of the elements being iterated over.

[src]

Advances the iterator and returns the next value. Read more

[src]

Returns the bounds on the remaining length of the iterator. Read more

1.0.0
[src]

Consumes the iterator, counting the number of iterations and returning it. Read more

1.0.0
[src]

Consumes the iterator, returning the last element. Read more

1.0.0
[src]

Returns the nth element of the iterator. Read more

[src]

🔬 This is a nightly-only experimental API. (iterator_step_by)

unstable replacement of Range::step_by

Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more

1.0.0
[src]

Takes two iterators and creates a new iterator over both in sequence. Read more

1.0.0
[src]

'Zips up' two iterators into a single iterator of pairs. Read more

1.0.0
[src]

Takes a closure and creates an iterator which calls that closure on each element. Read more

1.22.0
[src]

Calls a closure on each element of an iterator. Read more

1.0.0
[src]

Creates an iterator which uses a closure to determine if an element should be yielded. Read more

1.0.0
[src]

Creates an iterator that both filters and maps. Read more

1.0.0
[src]

Creates an iterator which gives the current iteration count as well as the next value. Read more

1.0.0
[src]

Creates an iterator which can use peek to look at the next element of the iterator without consuming it. Read more

1.0.0
[src]

Creates an iterator that [skip]s elements based on a predicate. Read more

1.0.0
[src]

Creates an iterator that yields elements based on a predicate. Read more

1.0.0
[src]

Creates an iterator that skips the first n elements. Read more

1.0.0
[src]

Creates an iterator that yields its first n elements. Read more

1.0.0
[src]

An iterator adaptor similar to [fold] that holds internal state and produces a new iterator. Read more

1.0.0
[src]

Creates an iterator that works like map, but flattens nested structure. Read more

1.0.0
[src]

Creates an iterator which ends after the first [None]. Read more

1.0.0
[src]

Do something with each element of an iterator, passing the value on. Read more

1.0.0
[src]

Borrows an iterator, rather than consuming it. Read more

1.0.0
[src]

Transforms an iterator into a collection. Read more

1.0.0
[src]

Consumes an iterator, creating two collections from it. Read more

1.0.0
[src]

An iterator adaptor that applies a function, producing a single, final value. Read more

1.0.0
[src]

Tests if every element of the iterator matches a predicate. Read more

1.0.0
[src]

Tests if any element of the iterator matches a predicate. Read more

1.0.0
[src]

Searches for an element of an iterator that satisfies a predicate. Read more

1.0.0
[src]

Searches for an element in an iterator, returning its index. Read more

1.0.0
[src]

Searches for an element in an iterator from the right, returning its index. Read more

1.0.0
[src]

Returns the maximum element of an iterator. Read more

1.0.0
[src]

Returns the minimum element of an iterator. Read more

1.6.0
[src]

Returns the element that gives the maximum value from the specified function. Read more

1.15.0
[src]

Returns the element that gives the maximum value with respect to the specified comparison function. Read more

1.6.0
[src]

Returns the element that gives the minimum value from the specified function. Read more

1.15.0
[src]

Returns the element that gives the minimum value with respect to the specified comparison function. Read more

1.0.0
[src]

Reverses an iterator's direction. Read more

1.0.0
[src]

Converts an iterator of pairs into a pair of containers. Read more

1.0.0
[src]

Creates an iterator which [clone]s all of its elements. Read more

1.0.0
[src]

Repeats an iterator endlessly. Read more

1.11.0
[src]

Sums the elements of an iterator. Read more

1.11.0
[src]

Iterates over the entire iterator, multiplying all the elements Read more

1.5.0
[src]

Lexicographically compares the elements of this Iterator with those of another. Read more

1.5.0
[src]

Lexicographically compares the elements of this Iterator with those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are equal to those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are unequal to those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are lexicographically less than those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are lexicographically less or equal to those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are lexicographically greater than those of another. Read more

1.5.0
[src]

Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more

impl DoubleEndedIterator for GrayCode8
[src]

[src]

Removes and returns an element from the end of the iterator. Read more

[src]

🔬 This is a nightly-only experimental API. (iter_rfind)

Searches for an element of an iterator from the right that satisfies a predicate. Read more