Skip to main content

M

pub struct M<'w, T>(pub &'w mut T);
Expand description

A wrapper around a mutable reference to a value of type T.

This can be used to retrieve a mutable reference out of a ScriptValue::Reference corresponding to the type T. Before downcasting the reference, it will claim write access to the object to ensure that the reference is valid.

However, the access is NOT released when the Mut is dropped. This is not unsafe but can lead to deadlocks if not released later. The [ScriptFunction] calling mechanism will take care of releasing all accesses claimed during the function call.

Tuple Fields§

§0: &'w mut T

Trait Implementations§

Source§

impl<T> ArgMeta for M<'_, T>

Source§

fn default_value() -> Option<ScriptValue>

The default value for the argument. Used when the argument is not provided.
Source§

fn variadic() -> bool

If returns true, will absorb all arguments following itself
Source§

impl<T> Deref for M<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T> DerefMut for M<'_, T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'a, T> From<&'a mut T> for M<'a, T>

Source§

fn from(value: &'a mut T) -> Self

Converts to this type from the input type.
Source§

impl<T: FromReflect> FromScript for M<'_, T>

Source§

type This<'w> = M<'w, T>

The type that is constructed from the script value.
Source§

fn from_script( value: ScriptValue, world: WorldGuard<'_>, ) -> Result<Self::This<'_>, InteropError>

Construct a value of type T from a ScriptValue.
Source§

impl<'a, T> GetTypeDependencies for M<'a, T>

Source§

type Underlying = T

In the majority of the implementations, this will be Self However some types might be facades for other types, in which case this will be the underlying type
Source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers the type dependencies of the implementing type with the given TypeRegistry.
Source§

impl<T: Typed> TypedThrough for M<'_, T>

Auto Trait Implementations§

§

impl<'w, T> !UnwindSafe for M<'w, T>

§

impl<'w, T> Freeze for M<'w, T>

§

impl<'w, T> RefUnwindSafe for M<'w, T>
where T: RefUnwindSafe,

§

impl<'w, T> Send for M<'w, T>
where T: Send,

§

impl<'w, T> Sync for M<'w, T>
where T: Sync,

§

impl<'w, T> Unpin for M<'w, T>

§

impl<'w, T> UnsafeUnpin for M<'w, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoNamespace for T
where T: 'static + ?Sized,

Source§

fn into_namespace() -> Namespace

Converts this type into a Namespace
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ScriptArgument for T

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> TypedScriptArgument for T

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more