Struct dia_ip_range::IPv4RangeIter[][src]

pub struct IPv4RangeIter<'a> { /* fields omitted */ }

IPv4 range iter

Examples

use {
    core::{
        cell::RefCell,
        str::FromStr,
    },
    std::net::IpAddr,
    dia_ip_range::{IPv4Range, IPv4RangeIter},
};

let output_buffer = RefCell::new(Vec::with_capacity(4));
let mut iter = IPv4RangeIter::new(
    IPv4Range::from_str("10.0.0.[2,9]")?,
    &output_buffer,
);
for sample in vec![
    [10, 0, 0, 2], [10, 0, 0, 3], [10, 0, 0, 4], [10, 0, 0, 5],
    [10, 0, 0, 6], [10, 0, 0, 7], [10, 0, 0, 8], [10, 0, 0, 9],
] {
    assert_eq!(iter.next().unwrap(), IpAddr::from(sample));
}
assert!(iter.next().is_none());

Implementations

impl<'a> IPv4RangeIter<'a>[src]

pub fn new(ip_v4_range: IPv4Range, output_buffer: &'a RefCell<Vec<u8>>) -> Self[src]

Makes new instance

Output buffer is used for better performance.

Panics

If you mutably borrow the output buffer while this instance already did that, it panics.

Trait Implementations

impl<'a> Debug for IPv4RangeIter<'a>[src]

impl<'a> Eq for IPv4RangeIter<'a>[src]

impl<'a> Hash for IPv4RangeIter<'a>[src]

impl Iterator for IPv4RangeIter<'_>[src]

type Item = IpAddr

The type of the elements being iterated over.

impl<'a> PartialEq<IPv4RangeIter<'a>> for IPv4RangeIter<'a>[src]

impl<'a> StructuralEq for IPv4RangeIter<'a>[src]

impl<'a> StructuralPartialEq for IPv4RangeIter<'a>[src]

Auto Trait Implementations

impl<'a> !RefUnwindSafe for IPv4RangeIter<'a>

impl<'a> !Send for IPv4RangeIter<'a>

impl<'a> !Sync for IPv4RangeIter<'a>

impl<'a> Unpin for IPv4RangeIter<'a>

impl<'a> !UnwindSafe for IPv4RangeIter<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.