pub struct MultiValueManagedVec<M, T>(/* private fields */)
where
M: ManagedTypeApi,
T: ManagedVecItem;
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() -> MultiValueManagedVec<M, T>
pub fn byte_len(&self) -> usize
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn get(&self, index: usize) -> <T as ManagedVecItem>::Ref<'_>
pub fn slice( &self, start_index: usize, end_index: usize, ) -> Option<MultiValueManagedVec<M, T>>
pub fn push(&mut self, item: T)
pub fn from_single_item(item: T) -> MultiValueManagedVec<M, T>
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, T> Clone for MultiValueManagedVec<M, T>
impl<M, T> 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, T> Default for MultiValueManagedVec<M, T>
impl<M, T> 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>) -> MultiValueManagedVec<M, T>
fn from(managed_vec: ManagedVec<M, T>) -> MultiValueManagedVec<M, T>
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§fn from(v: Vec<I>) -> MultiValueManagedVec<M, T>
fn from(v: Vec<I>) -> MultiValueManagedVec<M, T>
Converts to this type from the input type.
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§type Item = <T as ManagedVecItem>::Ref<'a>
type Item = <T as ManagedVecItem>::Ref<'a>
The type of the elements being iterated over.
Source§type IntoIter = ManagedVecRefIterator<'a, M, T>
type IntoIter = ManagedVecRefIterator<'a, M, T>
Which kind of iterator are we turning this into?
Source§fn into_iter(self) -> <&'a MultiValueManagedVec<M, T> as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a MultiValueManagedVec<M, T> as IntoIterator>::IntoIter
Creates an iterator from a value. Read more
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§type IntoIter = ManagedVecOwnedIterator<M, T>
type IntoIter = ManagedVecOwnedIterator<M, T>
Which kind of iterator are we turning this into?
Source§fn into_iter(self) -> <MultiValueManagedVec<M, T> as IntoIterator>::IntoIter
fn into_iter(self) -> <MultiValueManagedVec<M, T> as IntoIterator>::IntoIter
Creates an iterator from a value. Read more
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 as HandleTypeInfo>::ManagedBufferHandle
Source§unsafe fn forget_into_handle(
self,
) -> <MultiValueManagedVec<M, T> as ManagedType<M>>::OwnHandle
unsafe fn forget_into_handle( self, ) -> <MultiValueManagedVec<M, T> as ManagedType<M>>::OwnHandle
Forgets current object (does not run destructor), but extracts the handle. Read more
Source§fn transmute_from_handle_ref(
handle_ref: &<M as HandleTypeInfo>::ManagedBufferHandle,
) -> &MultiValueManagedVec<M, T>
fn transmute_from_handle_ref( handle_ref: &<M as HandleTypeInfo>::ManagedBufferHandle, ) -> &MultiValueManagedVec<M, T>
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 as HandleTypeInfo>::ManagedBufferHandle, ) -> &mut MultiValueManagedVec<M, T>
fn get_raw_handle(&self) -> i32
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<MultiValueManagedVec<M, T>, <H as DecodeErrorHandler>::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 as EncodeErrorHandler>::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), <H as EncodeErrorHandler>::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 as EncodeErrorHandler>::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H,
) -> Result<(), <H as EncodeErrorHandler>::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() -> String
fn type_name_rust() -> String
Source§fn provide_type_descriptions<TDC>(accumulator: &mut TDC)where
TDC: TypeDescriptionContainer,
fn provide_type_descriptions<TDC>(accumulator: &mut TDC)where
TDC: TypeDescriptionContainer,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> InterpretableFrom<&T> for Twhere
T: Clone,
impl<T> InterpretableFrom<&T> for Twhere
T: Clone,
fn interpret_from(from: &T, _context: &InterpreterContext) -> T
Source§impl<T> InterpretableFrom<T> for T
impl<T> InterpretableFrom<T> for T
fn interpret_from(from: T, _context: &InterpreterContext) -> T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more