Trait scrypto_test::prelude::AsMut

1.0.0 · source ·
pub trait AsMut<T>
where T: ?Sized,
{ // Required method fn as_mut(&mut self) -> &mut T; }
Expand description

Used to do a cheap mutable-to-mutable reference conversion.

This trait is similar to AsRef but used for converting between mutable references. If you need to do a costly conversion it is better to implement From with type &mut T or write a custom function.

Note: This trait must not fail. If the conversion can fail, use a dedicated method which returns an Option<T> or a Result<T, E>.

§Generic Implementations

AsMut auto-dereferences if the inner type is a mutable reference (e.g.: foo.as_mut() will work the same if foo has type &mut Foo or &mut &mut Foo).

Note that due to historic reasons, the above currently does not hold generally for all mutably dereferenceable types, e.g. foo.as_mut() will not work the same as Box::new(foo).as_mut(). Instead, many smart pointers provide an as_mut implementation which simply returns a reference to the pointed-to value (but do not perform a cheap reference-to-reference conversion for that value). However, AsMut::as_mut should not be used for the sole purpose of mutable dereferencing; instead Deref coercion’ can be used:

let mut x = Box::new(5i32);
// Avoid this:
// let y: &mut i32 = x.as_mut();
// Better just write:
let y: &mut i32 = &mut x;

Types which implement DerefMut should consider to add an implementation of AsMut<T> as follows:

impl<T> AsMut<T> for SomeType
where
    <SomeType as Deref>::Target: AsMut<T>,
{
    fn as_mut(&mut self) -> &mut T {
        self.deref_mut().as_mut()
    }
}

§Reflexivity

Ideally, AsMut would be reflexive, i.e. there would be an impl<T: ?Sized> AsMut<T> for T with as_mut simply returning its argument unchanged. Such a blanket implementation is currently not provided due to technical restrictions of Rust’s type system (it would be overlapping with another existing blanket implementation for &mut T where T: AsMut<U> which allows AsMut to auto-dereference, see “Generic Implementations” above).

A trivial implementation of AsMut<T> for T must be added explicitly for a particular type T where needed or desired. Note, however, that not all types from std contain such an implementation, and those cannot be added by external code due to orphan rules.

§Examples

Using AsMut as trait bound for a generic function, we can accept all mutable references that can be converted to type &mut T. Unlike dereference, which has a single target type, there can be multiple implementations of AsMut for a type. In particular, Vec<T> implements both AsMut<Vec<T>> and AsMut<[T]>.

In the following, the example functions caesar and null_terminate provide a generic interface which work with any type that can be converted by cheap mutable-to-mutable conversion into a byte slice ([u8]) or byte vector (Vec<u8>), respectively.

struct Document {
    info: String,
    content: Vec<u8>,
}

impl<T: ?Sized> AsMut<T> for Document
where
    Vec<u8>: AsMut<T>,
{
    fn as_mut(&mut self) -> &mut T {
        self.content.as_mut()
    }
}

fn caesar<T: AsMut<[u8]>>(data: &mut T, key: u8) {
    for byte in data.as_mut() {
        *byte = byte.wrapping_add(key);
    }
}

fn null_terminate<T: AsMut<Vec<u8>>>(data: &mut T) {
    // Using a non-generic inner function, which contains most of the
    // functionality, helps to minimize monomorphization overhead.
    fn doit(data: &mut Vec<u8>) {
        let len = data.len();
        if len == 0 || data[len-1] != 0 {
            data.push(0);
        }
    }
    doit(data.as_mut());
}

fn main() {
    let mut v: Vec<u8> = vec![1, 2, 3];
    caesar(&mut v, 5);
    assert_eq!(v, [6, 7, 8]);
    null_terminate(&mut v);
    assert_eq!(v, [6, 7, 8, 0]);
    let mut doc = Document {
        info: String::from("Example"),
        content: vec![17, 19, 8],
    };
    caesar(&mut doc, 1);
    assert_eq!(doc.content, [18, 20, 9]);
    null_terminate(&mut doc);
    assert_eq!(doc.content, [18, 20, 9, 0]);
}

Note, however, that APIs don’t need to be generic. In many cases taking a &mut [u8] or &mut Vec<u8>, for example, is the better choice (callers need to pass the correct type then).

Required Methods§

source

fn as_mut(&mut self) -> &mut T

Converts this type into a mutable reference of the (usually inferred) input type.

Implementors§

source§

impl AsMut<VersionedAccountAuthorizedDepositor> for AccountAuthorizedDepositorEntryPayload

source§

impl AsMut<VersionedAccountDepositRule> for AccountDepositRuleFieldPayload

source§

impl AsMut<VersionedAccountResourcePreference> for AccountResourcePreferenceEntryPayload

source§

impl AsMut<VersionedAccountResourceVault> for AccountResourceVaultEntryPayload

source§

impl AsMut<VersionedMetadataEntry> for MetadataEntryEntryPayload

source§

impl AsMut<VersionedRoleAssignmentAccessRule> for RoleAssignmentAccessRuleEntryPayload

source§

impl AsMut<VersionedRoleAssignmentOwner> for RoleAssignmentOwnerFieldPayload

source§

impl AsMut<VersionedComponentRoyaltyAccumulator> for ComponentRoyaltyAccumulatorFieldPayload

source§

impl AsMut<VersionedComponentRoyaltyMethodAmount> for ComponentRoyaltyMethodAmountEntryPayload

source§

impl AsMut<ResourceOrNonFungible> for AccountAuthorizedDepositorKeyPayload

source§

impl AsMut<VersionedAccessControllerState> for AccessControllerStateFieldPayload

source§

impl AsMut<VersionedConsensusManagerConfiguration> for ConsensusManagerConfigurationFieldPayload

source§

impl AsMut<VersionedConsensusManagerCurrentProposalStatistic> for ConsensusManagerCurrentProposalStatisticFieldPayload

source§

impl AsMut<VersionedConsensusManagerCurrentValidatorSet> for ConsensusManagerCurrentValidatorSetFieldPayload

source§

impl AsMut<VersionedConsensusManagerProposerMilliTimestamp> for ConsensusManagerProposerMilliTimestampFieldPayload

source§

impl AsMut<VersionedConsensusManagerProposerMinuteTimestamp> for ConsensusManagerProposerMinuteTimestampFieldPayload

source§

impl AsMut<VersionedConsensusManagerRegisteredValidatorByStake> for ConsensusManagerRegisteredValidatorByStakeEntryPayload

source§

impl AsMut<VersionedConsensusManagerState> for ConsensusManagerStateFieldPayload

source§

impl AsMut<VersionedConsensusManagerValidatorRewards> for ConsensusManagerValidatorRewardsFieldPayload

source§

impl AsMut<VersionedFungibleResourceManagerDivisibility> for FungibleResourceManagerDivisibilityFieldPayload

source§

impl AsMut<VersionedFungibleResourceManagerTotalSupply> for FungibleResourceManagerTotalSupplyFieldPayload

source§

impl AsMut<VersionedFungibleVaultBalance> for FungibleVaultBalanceFieldPayload

source§

impl AsMut<VersionedFungibleVaultFreezeStatus> for FungibleVaultFreezeStatusFieldPayload

source§

impl AsMut<VersionedFungibleVaultLockedBalance> for FungibleVaultLockedBalanceFieldPayload

source§

impl AsMut<VersionedNonFungibleResourceManagerIdType> for NonFungibleResourceManagerIdTypeFieldPayload

source§

impl AsMut<VersionedNonFungibleResourceManagerMutableFields> for NonFungibleResourceManagerMutableFieldsFieldPayload

source§

impl AsMut<VersionedNonFungibleResourceManagerTotalSupply> for NonFungibleResourceManagerTotalSupplyFieldPayload

source§

impl AsMut<VersionedNonFungibleVaultBalance> for NonFungibleVaultBalanceFieldPayload

source§

impl AsMut<VersionedNonFungibleVaultFreezeStatus> for NonFungibleVaultFreezeStatusFieldPayload

source§

impl AsMut<VersionedNonFungibleVaultLockedResource> for NonFungibleVaultLockedResourceFieldPayload

source§

impl AsMut<VersionedNonFungibleVaultNonFungible> for NonFungibleVaultNonFungibleEntryPayload

source§

impl AsMut<VersionedPackageBlueprintVersionAuthConfig> for PackageBlueprintVersionAuthConfigEntryPayload

source§

impl AsMut<VersionedPackageBlueprintVersionDefinition> for PackageBlueprintVersionDefinitionEntryPayload

source§

impl AsMut<VersionedPackageBlueprintVersionDependencies> for PackageBlueprintVersionDependenciesEntryPayload

source§

impl AsMut<VersionedPackageBlueprintVersionRoyaltyConfig> for PackageBlueprintVersionRoyaltyConfigEntryPayload

source§

impl AsMut<VersionedPackageCodeInstrumentedCode> for PackageCodeInstrumentedCodeEntryPayload

source§

impl AsMut<VersionedPackageCodeOriginalCode> for PackageCodeOriginalCodeEntryPayload

source§

impl AsMut<VersionedPackageCodeVmType> for PackageCodeVmTypeEntryPayload

source§

impl AsMut<VersionedPackageRoyaltyAccumulator> for PackageRoyaltyAccumulatorFieldPayload

source§

impl AsMut<VersionedValidatorProtocolUpdateReadinessSignal> for ValidatorProtocolUpdateReadinessSignalFieldPayload

source§

impl AsMut<VersionedValidatorState> for ValidatorStateFieldPayload

source§

impl AsMut<NonFungibleLocalId> for NonFungibleResourceManagerDataKeyPayload

source§

impl AsMut<NonFungibleLocalId> for NonFungibleVaultNonFungibleKeyPayload

source§

impl AsMut<VersionedSchema<ScryptoCustomSchema>> for PackageSchemaEntryPayload

source§

impl AsMut<VersionedMultiResourcePoolState> for MultiResourcePoolStateFieldPayload

source§

impl AsMut<VersionedOneResourcePoolState> for OneResourcePoolStateFieldPayload

source§

impl AsMut<VersionedTwoResourcePoolState> for TwoResourcePoolStateFieldPayload

1.51.0 · source§

impl AsMut<str> for str

1.43.0 · source§

impl AsMut<str> for String

§

impl AsMut<str> for AliasableString

source§

impl AsMut<String> for MetadataEntryKeyPayload

source§

impl AsMut<String> for ComponentRoyaltyMethodAmountKeyPayload

source§

impl AsMut<ComponentAddress> for ConsensusManagerRegisteredValidatorByStakeKeyPayload

source§

impl AsMut<ResourceAddress> for AccountResourcePreferenceKeyPayload

source§

impl AsMut<ResourceAddress> for AccountResourceVaultKeyPayload

source§

impl AsMut<SchemaHash> for PackageSchemaKeyPayload

source§

impl AsMut<BlueprintVersionKey> for PackageBlueprintVersionAuthConfigKeyPayload

source§

impl AsMut<BlueprintVersionKey> for PackageBlueprintVersionDefinitionKeyPayload

source§

impl AsMut<BlueprintVersionKey> for PackageBlueprintVersionDependenciesKeyPayload

source§

impl AsMut<BlueprintVersionKey> for PackageBlueprintVersionRoyaltyConfigKeyPayload

source§

impl AsMut<CodeHash> for PackageCodeInstrumentedCodeKeyPayload

source§

impl AsMut<CodeHash> for PackageCodeOriginalCodeKeyPayload

source§

impl AsMut<CodeHash> for PackageCodeVmTypeKeyPayload

source§

impl AsMut<ModuleRoleKey> for RoleAssignmentAccessRuleKeyPayload

§

impl<A> AsMut<[<A as Array>::Item]> for SmallVec<A>
where A: Array,

source§

impl<Data> AsMut<Data> for NonFungibleResourceManagerDataEntryPayload<Data>

source§

impl<L, R> AsMut<str> for Either<L, R>
where L: AsMut<str>, R: AsMut<str>,

source§

impl<L, R> AsMut<CStr> for Either<L, R>
where L: AsMut<CStr>, R: AsMut<CStr>,

Requires crate feature use_std.

source§

impl<L, R> AsMut<OsStr> for Either<L, R>
where L: AsMut<OsStr>, R: AsMut<OsStr>,

Requires crate feature use_std.

source§

impl<L, R> AsMut<Path> for Either<L, R>
where L: AsMut<Path>, R: AsMut<Path>,

Requires crate feature use_std.

source§

impl<L, R, Target> AsMut<[Target]> for Either<L, R>
where L: AsMut<[Target]>, R: AsMut<[Target]>,

source§

impl<L, R, Target> AsMut<Target> for Either<L, R>
where L: AsMut<Target>, R: AsMut<Target>,

§

impl<T> AsMut<[T; 1]> for GenericArray<T, UInt<UTerm, B1>>

§

impl<T> AsMut<[T; 2]> for GenericArray<T, UInt<UInt<UTerm, B1>, B0>>

§

impl<T> AsMut<[T; 3]> for GenericArray<T, UInt<UInt<UTerm, B1>, B1>>

§

impl<T> AsMut<[T; 4]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 5]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 6]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 7]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 8]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 9]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 10]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 11]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 12]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 13]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 14]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 15]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 16]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 17]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 18]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 19]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 20]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 21]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 22]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 23]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 24]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 25]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 26]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 27]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 28]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 29]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 30]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 31]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 32]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 33]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 34]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 35]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 36]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 37]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 38]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 39]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 40]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 41]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 42]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 43]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 44]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 45]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 46]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 47]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 48]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 49]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 50]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 51]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 52]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 53]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 54]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 55]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 56]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 57]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>, B1>>

§

impl<T> AsMut<[T; 58]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 59]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>, B1>>

§

impl<T> AsMut<[T; 60]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 61]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>, B1>>

§

impl<T> AsMut<[T; 62]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 63]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B1>>

§

impl<T> AsMut<[T; 64]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 70]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B1>, B0>>

§

impl<T> AsMut<[T; 80]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 90]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B1>, B0>>

§

impl<T> AsMut<[T; 100]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 128]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 200]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 256]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 300]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B1>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 400]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 500]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>, B1>, B0>, B0>>

§

impl<T> AsMut<[T; 512]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 1000]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>, B1>, B0>, B0>, B0>>

§

impl<T> AsMut<[T; 1024]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>

source§

impl<T> AsMut<[T]> for [T]

§

impl<T> AsMut<[T]> for AliasableVec<T>

§

impl<T> AsMut<T> for AliasableBox<T>
where T: ?Sized,

§

impl<T> AsMut<T> for AliasableMut<'_, T>
where T: ?Sized,

§

impl<T> AsMut<T> for Owned<T>
where T: Pointable + ?Sized,

1.5.0 · source§

impl<T, A> AsMut<[T]> for Vec<T, A>
where A: Allocator,

1.5.0 · source§

impl<T, A> AsMut<Vec<T, A>> for Vec<T, A>
where A: Allocator,

1.5.0 · source§

impl<T, A> AsMut<T> for Box<T, A>
where A: Allocator, T: ?Sized,

§

impl<T, N> AsMut<[T]> for GenericArray<T, N>
where N: ArrayLength<T>,

source§

impl<T, U> AsMut<U> for &mut T
where T: AsMut<U> + ?Sized, U: ?Sized,

source§

impl<T, const N: usize> AsMut<[T; N]> for Simd<T, N>

source§

impl<T, const N: usize> AsMut<[T]> for [T; N]

source§

impl<T, const N: usize> AsMut<[T]> for Simd<T, N>