pub struct MultiValueManagedVec<M: ManagedTypeApi, T: ManagedVecItem>(/* private fields */);
Implementations§
Source§impl<M, T> MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
impl<M, T> MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
pub fn new() -> Self
pub fn byte_len(&self) -> usize
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn get(&self, index: usize) -> T::Ref<'_>
pub fn slice(&self, start_index: usize, end_index: usize) -> Option<Self>
pub fn push(&mut self, item: T)
pub fn from_single_item(item: T) -> Self
pub fn overwrite_with_single_item(&mut self, item: T)
pub fn append_vec(&mut self, item: MultiValueManagedVec<M, T>)
pub fn clear(&mut self)
pub fn into_vec(self) -> ManagedVec<M, T>
pub fn with_self_as_vec<F>(&mut self, f: F)
pub fn iter(&self) -> ManagedVecRefIterator<'_, M, T> ⓘ
Trait Implementations§
Source§impl<M: Clone + ManagedTypeApi, T: Clone + ManagedVecItem> Clone for MultiValueManagedVec<M, T>
impl<M: Clone + ManagedTypeApi, T: Clone + ManagedVecItem> Clone for MultiValueManagedVec<M, T>
Source§fn clone(&self) -> MultiValueManagedVec<M, T>
fn clone(&self) -> MultiValueManagedVec<M, T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<M: Default + ManagedTypeApi, T: Default + ManagedVecItem> Default for MultiValueManagedVec<M, T>
impl<M: Default + ManagedTypeApi, T: Default + ManagedVecItem> Default for MultiValueManagedVec<M, T>
Source§fn default() -> MultiValueManagedVec<M, T>
fn default() -> MultiValueManagedVec<M, T>
Returns the “default value” for a type. Read more
Source§impl<M, T> From<ManagedVec<M, T>> for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
impl<M, T> From<ManagedVec<M, T>> for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
Source§fn from(managed_vec: ManagedVec<M, T>) -> Self
fn from(managed_vec: ManagedVec<M, T>) -> Self
Converts to this type from the input type.
Source§impl<M, T, I> From<Vec<I>> for MultiValueManagedVec<M, T>
impl<M, T, I> From<Vec<I>> for MultiValueManagedVec<M, T>
Source§impl<'a, M, T> IntoIterator for &'a MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
impl<'a, M, T> IntoIterator for &'a MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
Source§impl<M, T> IntoIterator for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
impl<M, T> IntoIterator for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
Source§impl<M, T> ManagedType<M> for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
impl<M, T> ManagedType<M> for MultiValueManagedVec<M, T>where
M: ManagedTypeApi,
T: ManagedVecItem,
type OwnHandle = <M as HandleTypeInfo>::ManagedBufferHandle
fn get_handle(&self) -> M::ManagedBufferHandle
Source§unsafe fn forget_into_handle(self) -> Self::OwnHandle
unsafe fn forget_into_handle(self) -> Self::OwnHandle
Forgets current object (does not run destructor), but extracts the handle. Read more
Source§fn transmute_from_handle_ref(handle_ref: &M::ManagedBufferHandle) -> &Self
fn transmute_from_handle_ref(handle_ref: &M::ManagedBufferHandle) -> &Self
Implement carefully, since the underlying transmutation is an unsafe operation.
For types that wrap a handle to some VM-managed data,
make sure the type only contains the handle (plus ZSTs if necessary).
For types that just wrap another managed type it is easier, call for the wrapped object.
fn transmute_from_handle_ref_mut( handle_ref: &mut M::ManagedBufferHandle, ) -> &mut Self
fn get_raw_handle(&self) -> RawHandle
fn as_ref(&self) -> ManagedRef<'_, M, Self>
Source§impl<M, T> TopDecodeMulti for MultiValueManagedVec<M, T>
impl<M, T> TopDecodeMulti for MultiValueManagedVec<M, T>
fn multi_decode_or_handle_err<I, H>(
input: &mut I,
h: H,
) -> Result<Self, H::HandledErr>where
I: TopDecodeMultiInput,
H: DecodeErrorHandler,
Source§const IS_SINGLE_VALUE: bool = false
const IS_SINGLE_VALUE: bool = false
Used to optimize single value loading of endpoint arguments.
fn multi_decode<I>(input: &mut I) -> Result<Self, DecodeError>where
I: TopDecodeMultiInput,
Source§impl<M, T> TopEncodeMulti for &MultiValueManagedVec<M, T>
impl<M, T> TopEncodeMulti for &MultiValueManagedVec<M, T>
Source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
Version of
top_encode
that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.Source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.
Source§impl<M, T> TopEncodeMulti for MultiValueManagedVec<M, T>
impl<M, T> TopEncodeMulti for MultiValueManagedVec<M, T>
Source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
Version of
top_encode
that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.Source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.
Source§impl<M, T> TypeAbi for MultiValueManagedVec<M, T>
impl<M, T> TypeAbi for MultiValueManagedVec<M, T>
type Unmanaged = MultiValueVec<<T as TypeAbi>::Unmanaged>
fn type_name() -> TypeName
fn type_name_rust() -> TypeName
Source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC,
)
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )
A type can provide more than its own name.
For instance, a struct can also provide the descriptions of the type of its fields.
TypeAbi doesn’t care for the exact accumulator type,
which is abstracted by the TypeDescriptionContainer trait.
fn type_names() -> TypeNames
impl<M, T> TypeAbiFrom<MultiValueManagedVec<M, T>> for MultiValueManagedVec<M, T>
Auto Trait Implementations§
impl<M, T> Freeze for MultiValueManagedVec<M, T>
impl<M, T> RefUnwindSafe for MultiValueManagedVec<M, T>
impl<M, T> Send for MultiValueManagedVec<M, T>
impl<M, T> Sync for MultiValueManagedVec<M, T>
impl<M, T> Unpin for MultiValueManagedVec<M, T>
impl<M, T> UnwindSafe for MultiValueManagedVec<M, T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more