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>
Try to convert to the given type, from the given value.
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>
Try to convert to the given type, from the given value.
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>
Type information for the given type.
Source§impl<T> TypeOf for Mut<T>
impl<T> TypeOf for Mut<T>
Blanket implementation for owned mutable references.
Source§const PARAMETERS: Hash = T::PARAMETERS
const PARAMETERS: Hash = T::PARAMETERS
Type parameters for the type. Read more
Source§const STATIC_TYPE_INFO: AnyTypeInfo = T::STATIC_TYPE_INFO
const STATIC_TYPE_INFO: AnyTypeInfo = T::STATIC_TYPE_INFO
Access diagnostical type information for the current type. Read more
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> 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
Mutably borrows from an owned value. Read more
Source§impl<T> EncodedChars for T
impl<T> EncodedChars for T
Source§fn encoding(&self) -> *mut OnigEncodingTypeST
fn encoding(&self) -> *mut OnigEncodingTypeST
The encoding of the contents of the buffer
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>
Map this future’s output to a different type, returning a new future of
the resulting type. Read more
Source§fn map_into<U>(self) -> MapInto<Self, U>
fn map_into<U>(self) -> MapInto<Self, U>
Map this future’s output to a different type, returning a new future of
the resulting type. Read more
Source§fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F>
Chain on a computation for when a future finished, passing the result of
the future to the provided closure
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,
Convert this future into a single element stream. Read more
Source§fn flatten(self) -> Flatten<Self>
fn flatten(self) -> Flatten<Self>
Flatten the execution of this future when the output of this
future is itself another future. Read more
Source§fn flatten_stream(self) -> FlattenStream<Self>
fn flatten_stream(self) -> FlattenStream<Self>
Flatten the execution of this future when the successful result of this
future is a stream. Read more
Source§fn fuse(self) -> Fuse<Self>where
Self: Sized,
fn fuse(self) -> Fuse<Self>where
Self: Sized,
Fuse a future such that
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>
Do something with the output of a future before passing it on. Read more
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>>
Wrap the future in a Box, pinning it. Read more
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,
Wrap the future in a Box, pinning it. Read more
Source§fn unit_error(self) -> UnitError<Self>where
Self: Sized,
fn unit_error(self) -> UnitError<Self>where
Self: Sized,
Turns a
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,
Turns a
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
Which kind of future are we turning this into?
Source§fn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
Creates a future from a value. Read more
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>
Maps this future’s success value to a different value. Read more
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>
Maps this future’s success value to a different value, and permits for error handling resulting in the same type. Read more
Source§fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
fn map_err<E, F>(self, f: F) -> MapErr<Self, F>
Maps this future’s error value to a different value. Read more
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>
Executes another future after this one resolves successfully. The
success value is passed to a closure to create this subsequent future. Read more
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>
Executes another future if this one resolves to an error. The
error value is passed to a closure to create this subsequent future. Read more
Source§fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
fn inspect_ok<F>(self, f: F) -> InspectOk<Self, F>
Do something with the success value of a future before passing it on. Read more
Source§fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F>
Do something with the error value of a future before passing it on. Read more
Source§fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
Flatten the execution of this future when the successful result of this
future is another future. Read more
Source§fn try_flatten_stream(self) -> TryFlattenStream<Self>
fn try_flatten_stream(self) -> TryFlattenStream<Self>
Flatten the execution of this future when the successful result of this
future is a stream. Read more