pub trait BatchContainer: for<'a> PushInto<Self::ReadItem<'a>> + 'static {
type Owned;
type ReadItem<'a>: Copy + Ord + IntoOwned<'a, Owned = Self::Owned>;
// Required methods
fn with_capacity(size: usize) -> Self;
fn merge_capacity(cont1: &Self, cont2: &Self) -> Self;
fn reborrow<'b, 'a: 'b>(item: Self::ReadItem<'a>) -> Self::ReadItem<'b>;
fn index(&self, index: usize) -> Self::ReadItem<'_>;
fn len(&self) -> usize;
// Provided methods
fn push<D>(&mut self, item: D)
where Self: PushInto<D> { ... }
fn last(&self) -> Option<Self::ReadItem<'_>> { ... }
fn is_empty(&self) -> bool { ... }
fn advance<F: for<'a> Fn(Self::ReadItem<'a>) -> bool>(
&self,
start: usize,
end: usize,
function: F,
) -> usize { ... }
}
Expand description
A general-purpose container resembling Vec<T>
.
Required Associated Types§
Required Methods§
Sourcefn with_capacity(size: usize) -> Self
fn with_capacity(size: usize) -> Self
Creates a new container with sufficient capacity.
Sourcefn merge_capacity(cont1: &Self, cont2: &Self) -> Self
fn merge_capacity(cont1: &Self, cont2: &Self) -> Self
Creates a new container with sufficient capacity.
Provided Methods§
Sourcefn last(&self) -> Option<Self::ReadItem<'_>>
fn last(&self) -> Option<Self::ReadItem<'_>>
Returns the last item if the container is non-empty.
Sourcefn advance<F: for<'a> Fn(Self::ReadItem<'a>) -> bool>(
&self,
start: usize,
end: usize,
function: F,
) -> usize
fn advance<F: for<'a> Fn(Self::ReadItem<'a>) -> bool>( &self, start: usize, end: usize, function: F, ) -> usize
Reports the number of elements satisfying the predicate.
This methods relies strongly on the assumption that the predicate
stays false once it becomes false, a joint property of the predicate
and the layout of Self. This allows
advance` to use exponential search to
count the number of elements in time logarithmic in the result.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.