/// Implements basic arrayvec methods - based on a few required methods /// for length and element access. pub(crate) trait ArrayVecImpl { type Item; const CAPACITY: usize;
fn len(&self) -> usize;
unsafefn set_len(&mutself, new_len: usize);
/// Return a slice containing all elements of the vector. fn as_slice(&self) -> &[Self::Item] { let len = self.len(); unsafe {
slice::from_raw_parts(self.as_ptr(), len)
}
}
/// Return a mutable slice containing all elements of the vector. fn as_mut_slice(&mutself) -> &mut [Self::Item] { let len = self.len(); unsafe {
std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
}
}
/// Return a raw pointer to the vector's buffer. fn as_ptr(&self) -> *constSelf::Item;
/// Return a raw mutable pointer to the vector's buffer. fn as_mut_ptr(&mutself) -> *mutSelf::Item;
fn truncate(&mutself, new_len: usize) { unsafe { let len = self.len(); if new_len < len { self.set_len(new_len); let tail = slice::from_raw_parts_mut(self.as_mut_ptr().add(new_len), len - new_len);
ptr::drop_in_place(tail);
}
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-19)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.