Trait cxx::vector::VectorElement

source ·
pub unsafe trait VectorElement: Sized { }
Expand description

Trait bound for types which may be used as the T inside of a CxxVector<T> in generic code.

This trait has no publicly callable or implementable methods. Implementing it outside of the CXX codebase requires using explicit shim trait impls, adding the line impl CxxVector<MyType> {} in the same cxx::bridge that defines MyType.

§Example

A bound T: VectorElement may be necessary when manipulating CxxVector in generic code.

use cxx::vector::{CxxVector, VectorElement};
use std::fmt::Display;

pub fn take_generic_vector<T>(vector: &CxxVector<T>)
where
    T: VectorElement + Display,
{
    println!("the vector elements are:");
    for element in vector {
        println!("  • {}", element);
    }
}

Writing the same generic function without a VectorElement trait bound would not compile.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl VectorElement for f32

source§

impl VectorElement for f64

source§

impl VectorElement for i8

source§

impl VectorElement for i16

source§

impl VectorElement for i32

source§

impl VectorElement for i64

source§

impl VectorElement for isize

source§

impl VectorElement for u8

source§

impl VectorElement for u16

source§

impl VectorElement for u32

source§

impl VectorElement for u64

source§

impl VectorElement for usize

Implementors§