pub struct Mut<T: ?Sized> { /* private fields */ }Expand description
A strong owned mutable reference to the given type that can be safely dereferenced.
§Examples
Constructed from a static value:
use rune::Mut;
let value: Mut<[u8]> = Mut::from_static(&mut [][..]);
assert_eq!(&value[..], b"");Implementations§
Source§impl<T: ?Sized> Mut<T>
impl<T: ?Sized> Mut<T>
Sourcepub fn from_static(value: &'static mut T) -> Mut<T> ⓘ
pub fn from_static(value: &'static mut T) -> Mut<T> ⓘ
Construct an owned mutable reference from a static value.
§Examples
use rune::Mut;
let value: Mut<[u8]> = Mut::from_static(&mut [][..]);
assert_eq!(&value[..], b"");Sourcepub fn map<U: ?Sized, F>(this: Self, f: F) -> Mut<U> ⓘ
pub fn map<U: ?Sized, F>(this: Self, f: F) -> Mut<U> ⓘ
Map the interior reference of an owned mutable value.
§Examples
use rune::Mut;
use rune::runtime::Bytes;
use rune::alloc::try_vec;
let bytes = rune::to_value(Bytes::from_vec(try_vec![1, 2, 3, 4]))?;
let bytes: Mut<Bytes> = rune::from_value(bytes)?;
let value: Mut<[u8]> = Mut::map(bytes, |bytes| &mut bytes[0..2]);
assert_eq!(&*value, &mut [1, 2][..]);Sourcepub fn try_map<U: ?Sized, F>(this: Self, f: F) -> Result<Mut<U>, Mut<T>>
pub fn try_map<U: ?Sized, F>(this: Self, f: F) -> Result<Mut<U>, Mut<T>>
Try to map the mutable reference to a projection.
§Examples
use rune::Mut;
use rune::runtime::Bytes;
use rune::alloc::try_vec;
let bytes = rune::to_value(Bytes::from_vec(try_vec![1, 2, 3, 4]))?;
let bytes: Mut<Bytes> = rune::from_value(bytes)?;
let Ok(mut value) = Mut::try_map(bytes, |bytes| bytes.get_mut(0..2)) else {
panic!("Conversion failed");
};
assert_eq!(&mut value[..], &mut [1, 2][..]);Sourcepub fn into_raw(this: Self) -> (NonNull<T>, RawAnyGuard)
pub fn into_raw(this: Self) -> (NonNull<T>, RawAnyGuard)
Convert into a raw pointer and associated raw access guard.
§Safety
The returned pointer must not outlive the associated guard, since this prevents other uses of the underlying data which is incompatible with the current.
Sourcepub unsafe fn from_raw(value: NonNull<T>, guard: RawAnyGuard) -> Self
pub unsafe fn from_raw(value: NonNull<T>, guard: RawAnyGuard) -> Self
Convert a raw mutable reference and guard into a regular mutable reference.
§Safety
The caller is responsible for ensuring that the raw mutable reference is associated with the specific pointer.
Trait Implementations§
Source§impl<T> FromValue for Mut<T>where
T: AnyMarker,
impl<T> FromValue for Mut<T>where
T: AnyMarker,
Source§fn from_value(value: Value) -> Result<Self, RuntimeError>
fn from_value(value: Value) -> Result<Self, RuntimeError>
Source§impl FromValue for Mut<Tuple>
impl FromValue for Mut<Tuple>
Source§fn from_value(value: Value) -> Result<Self, RuntimeError>
fn from_value(value: Value) -> Result<Self, RuntimeError>
Source§impl<T> MaybeTypeOf for Mut<T>where
T: ?Sized + MaybeTypeOf,
impl<T> MaybeTypeOf for Mut<T>where
T: ?Sized + MaybeTypeOf,
Source§fn maybe_type_of() -> Result<DocType>
fn maybe_type_of() -> Result<DocType>
Source§impl<T> TypeOf for Mut<T>
Blanket implementation for owned mutable references.
impl<T> TypeOf for Mut<T>
Blanket implementation for owned mutable references.
Source§const PARAMETERS: Hash = T::PARAMETERS
const PARAMETERS: Hash = T::PARAMETERS
Source§const STATIC_TYPE_INFO: AnyTypeInfo = T::STATIC_TYPE_INFO
const STATIC_TYPE_INFO: AnyTypeInfo = T::STATIC_TYPE_INFO
Auto Trait Implementations§
impl<T> Freeze for Mut<T>where
T: ?Sized,
impl<T> RefUnwindSafe for Mut<T>where
T: RefUnwindSafe + ?Sized,
impl<T> !Send for Mut<T>
impl<T> !Sync for Mut<T>
impl<T> Unpin for Mut<T>where
T: ?Sized,
impl<T> UnsafeUnpin for Mut<T>where
T: ?Sized,
impl<T> UnwindSafe for Mut<T>where
T: RefUnwindSafe + ?Sized,
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn map<U, F>(self, f: F) -> Map<Self, F>
fn map<U, F>(self, f: F) -> Map<Self, F>
Source§fn map_into<U>(self) -> MapInto<Self, U>
fn map_into<U>(self) -> MapInto<Self, U>
Source§fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
f. Read moreSource§fn left_future<B>(self) -> Either<Self, B>
fn left_future<B>(self) -> Either<Self, B>
Source§fn right_future<A>(self) -> Either<A, Self>
fn right_future<A>(self) -> Either<A, Self>
Source§fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
fn into_stream(self) -> IntoStream<Self>where
Self: Sized,
Source§fn flatten(self) -> Flatten<Self>
fn flatten(self) -> Flatten<Self>
Source§fn flatten_stream(self) -> FlattenStream<Self>
fn flatten_stream(self) -> FlattenStream<Self>
Source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
poll will never again be called once it has
completed. This method can be used to turn any Future into a
FusedFuture. Read moreSource§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
Source§fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a>>
fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a>>
alloc only.Source§fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>>where
Self: Sized + 'a,
fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>>where
Self: Sized + 'a,
alloc only.Source§fn unit_error(self) -> UnitError<Self>where
Self: Sized,
fn unit_error(self) -> UnitError<Self>where
Self: Sized,
Future<Output = T> into a
TryFuture<Ok = T, Error = ()>.Source§fn never_error(self) -> NeverError<Self>where
Self: Sized,
fn never_error(self) -> NeverError<Self>where
Self: Sized,
Future<Output = T> into a
TryFuture<Ok = T, Error = Never>.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
Source§type IntoFuture = F
type IntoFuture = F
Source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Source§impl<R> Rng for R
impl<R> Rng for R
Source§fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
StandardUniform distribution. Read moreSource§fn random_iter<T>(self) -> Iter<StandardUniform, Self, T>
fn random_iter<T>(self) -> Iter<StandardUniform, Self, T>
Source§fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
Source§fn random_bool(&mut self, p: f64) -> bool
fn random_bool(&mut self, p: f64) -> bool
p of being true. Read moreSource§fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
numerator/denominator of being
true. Read moreSource§fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
Source§fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T>where
D: Distribution<T>,
Self: Sized,
Source§fn gen<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
fn gen<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
Renamed to random to avoid conflict with the new gen keyword in Rust 2024.
Rng::random.Source§fn gen_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn gen_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
Renamed to random_range
Rng::random_range.Source§impl<Fut> TryFutureExt for Fut
impl<Fut> TryFutureExt for Fut
Source§fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>
fn map_ok<T, F>(self, f: F) -> MapOk<Self, F>
Source§fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E>
fn map_ok_or_else<T, E, F>(self, e: E, f: F) -> MapOkOrElse<Self, F, E>
Source§fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
Source§fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F>
fn and_then<Fut, F>(self, f: F) -> AndThen<Self, Fut, F>
Source§fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F>
fn or_else<Fut, F>(self, f: F) -> OrElse<Self, Fut, F>
Source§fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
Source§fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
Source§fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
Source§fn try_flatten_stream(self) -> TryFlattenStream<Self>
fn try_flatten_stream(self) -> TryFlattenStream<Self>
Source§fn unwrap_or_else<F>(self, f: F) -> UnwrapOrElse<Self, F>
fn unwrap_or_else<F>(self, f: F) -> UnwrapOrElse<Self, F>
Source§fn into_future(self) -> IntoFuture<Self>where
Self: Sized,
fn into_future(self) -> IntoFuture<Self>where
Self: Sized,
Source§impl<R> TryRngCore for R
impl<R> TryRngCore for R
Source§type Error = Infallible
type Error = Infallible
Source§fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>
fn try_next_u32(&mut self) -> Result<u32, <R as TryRngCore>::Error>
u32.Source§fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>
fn try_next_u64(&mut self) -> Result<u64, <R as TryRngCore>::Error>
u64.Source§fn try_fill_bytes(
&mut self,
dst: &mut [u8],
) -> Result<(), <R as TryRngCore>::Error>
fn try_fill_bytes( &mut self, dst: &mut [u8], ) -> Result<(), <R as TryRngCore>::Error>
dest entirely with random data.Source§fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>
fn unwrap_mut(&mut self) -> UnwrapMut<'_, Self>
UnwrapMut wrapper.Source§fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where
Self: Sized,
fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where
Self: Sized,
std only.RngCore to a RngReadAdapter.