Lines Matching defs:CxxVector
1 //! Less used details of `CxxVector` are exposed in this module. `CxxVector`
20 /// macro, in Rust code we can never obtain a `CxxVector` by value. Instead in
22 /// pointer, as in `&CxxVector<T>` or `UniquePtr<CxxVector<T>>`.
24 pub struct CxxVector<T> {
29 // correctly, e.g. CxxVector is UnwindSafe iff T is.
31 // Prevent unpin operation from Pin<&mut CxxVector<T>> to &mut CxxVector<T>.
35 impl<T> CxxVector<T>
88 let this = self as *const CxxVector<T> as *mut CxxVector<T>;
128 let this = self as *const CxxVector<T> as *mut CxxVector<T>;
193 /// Iterator over elements of a `CxxVector` by shared reference.
197 v: &'a CxxVector<T>,
201 impl<'a, T> IntoIterator for &'a CxxVector<T>
242 /// Iterator over elements of a `CxxVector` by pinned mutable reference.
246 v: Pin<&'a mut CxxVector<T>>,
250 impl<'a, T> IntoIterator for Pin<&'a mut CxxVector<T>>
296 impl<T> Debug for CxxVector<T>
306 /// `CxxVector<T>` in generic code.
313 /// A bound `T: VectorElement` may be necessary when manipulating [`CxxVector`]
317 /// use cxx::vector::{CxxVector, VectorElement};
320 /// pub fn take_generic_vector<T>(vector: &CxxVector<T>)
337 fn __vector_size(v: &CxxVector<Self>) -> usize;
339 unsafe fn __get_unchecked(v: *mut CxxVector<Self>, pos: usize) -> *mut Self;
341 unsafe fn __push_back(v: Pin<&mut CxxVector<Self>>, value: &mut ManuallyDrop<Self>) {
349 unsafe fn __pop_back(v: Pin<&mut CxxVector<Self>>, out: &mut MaybeUninit<Self>) {
359 unsafe fn __unique_ptr_raw(raw: *mut CxxVector<Self>) -> MaybeUninit<*mut c_void>;
361 unsafe fn __unique_ptr_get(repr: MaybeUninit<*mut c_void>) -> *const CxxVector<Self>;
363 unsafe fn __unique_ptr_release(repr: MaybeUninit<*mut c_void>) -> *mut CxxVector<Self>;
371 unsafe fn __push_back(v: Pin<&mut CxxVector<$ty>>, value: &mut ManuallyDrop<$ty>) {
375 fn __push_back(_: Pin<&mut CxxVector<$ty>>, _: &mut ManuallyDrop<$ty>);
380 unsafe fn __pop_back(v: Pin<&mut CxxVector<$ty>>, out: &mut MaybeUninit<$ty>) {
384 fn __pop_back(_: Pin<&mut CxxVector<$ty>>, _: &mut MaybeUninit<$ty>);
394 const_assert_eq!(0, mem::size_of::<CxxVector<$ty>>());
395 const_assert_eq!(1, mem::align_of::<CxxVector<$ty>>());
401 fn __vector_size(v: &CxxVector<$ty>) -> usize {
405 fn __vector_size(_: &CxxVector<$ty>) -> usize;
410 unsafe fn __get_unchecked(v: *mut CxxVector<$ty>, pos: usize) -> *mut $ty {
414 fn __get_unchecked(_: *mut CxxVector<$ty>, _: usize) -> *mut $ty;
431 unsafe fn __unique_ptr_raw(raw: *mut CxxVector<Self>) -> MaybeUninit<*mut c_void> {
435 fn __unique_ptr_raw(this: *mut MaybeUninit<*mut c_void>, raw: *mut CxxVector<$ty>);
442 unsafe fn __unique_ptr_get(repr: MaybeUninit<*mut c_void>) -> *const CxxVector<Self> {
446 fn __unique_ptr_get(this: *const MaybeUninit<*mut c_void>) -> *const CxxVector<$ty>;
451 unsafe fn __unique_ptr_release(mut repr: MaybeUninit<*mut c_void>) -> *mut CxxVector<Self> {
455 fn __unique_ptr_release(this: *mut MaybeUninit<*mut c_void>) -> *mut CxxVector<$ty>;