fn fill(&mut self, iter: &mut impl Iterator<Item = bool>) -> FillStatus {
		let bv = &mut *self.source;
		let mut len = bv.len();
		let span =
			unsafe { bv.as_mut_bitptr().add(len).range(self.tail.start - len) };

		let mut out = FillStatus::FullSpan;
		for ptr in span {
			if let Some(bit) = iter.next() {
				unsafe {
					ptr.write(bit);
				}
				len += 1;
			}
			else {
				out = FillStatus::EmptyInput;
				break;
			}
		}
		unsafe {
			bv.set_len_unchecked(len);
		}
		out
	}
/// Attempts to fill the `drain` region with the contents of another
/// iterator.
///
/// The source bit-vector is extended to include each bit that the
/// replacement iterator provides, but is *not yet* extended to include the
/// `tail` region, even if the replacement iterator completely fills the
/// `drain` region. That work occurs in the destructor.
///
/// This is only used by [`Splice`].
///
/// [`Splice`]: crate::vec::Splice
Attempts to fill the `drain` region with the contents of another
iterator.

The source bit-vector is extended to include each bit that the
replacement iterator provides, but is *not yet* extended to include the
`tail` region, even if the replacement iterator completely fills the
`drain` region. That work occurs in the destructor.

This is only used by [`Splice`].


Attempts to fill the ` drain ` region with the contents of another iterator . The source bit - vector is extended to include each bit that the replacement iterator provides but is * not yet * extended to include the ` tail ` region even if the replacement iterator completely fills the ` drain ` region . That work occurs in the destructor . This is only used by [ ` Splice ` ] .
fn fill(&mut self, iter: &mut impl Iterator<Item = bool>) -> FillStatus {
		let bv = &mut *self.source;
		let mut len = bv.len();
		let span =
			unsafe { bv.as_mut_bitptr().add(len).range(self.tail.start - len) };
		let mut out = FillStatus::FullSpan;
		for ptr in span {
			if let Some(bit) = iter.next() {
				unsafe {
					ptr.write(bit);
				}
				len += 1;
			}
			else {
				out = FillStatus::EmptyInput;
				break;
			}
		}
		unsafe {
			bv.set_len_unchecked(len);
		}
		out
	}
fn fill ( & mut self , iter : & mut impl Iterator < Item = bool > ) -> FillStatus { let bv = & mut * self . source ; let mut len = bv . len ( ) ; let span = unsafe { bv . as_mut_bitptr ( ) . add ( len ) . range ( self . tail . start - len ) } ; let mut out = FillStatus :: FullSpan ; for ptr in span { if let Some ( bit ) = iter . next ( ) { unsafe { ptr . write ( bit ) ; } len += 1 ; } else { out = FillStatus :: EmptyInput ; break ; } } unsafe { bv . set_len_unchecked ( len ) ; } out }
Attempts to fill the `drain` region with the contents of another
iterator.
Attempts to fill the ` drain ` region with the contents of another iterator .
&mut self
iter
&mut impl Iterator<Item = bool>
&mut self
iter
&mut impl Iterator<Item = bool>