godot::prelude

Enum Rid

pub enum Rid {
    Valid(NonZero<u64>),
    Invalid,
}
Expand description

A RID (“resource ID”) is an opaque handle that refers to a Godot Resource.

RIDs do not grant access to the resource itself. Instead, they can be used in lower-level resource APIs such as the servers. See also Godot API docs for RID.

RIDs should be largely safe to work with. Certain calls to servers may fail, however doing so will trigger an error from Godot, and will not cause any UB.

§Safety caveat

In Godot 3, RID was not as safe as described here. We believe that this is fixed in Godot 4, but this has not been extensively tested as of yet. Some confirmed UB from Godot 3 does not occur anymore, but if you find anything suspicious or outright UB please open an issue.

§Godot docs

RID (stable)

Variants§

§

Valid(NonZero<u64>)

A valid RID may refer to some resource, but is not guaranteed to do so.

§

Invalid

An invalid RID will never refer to a resource. Internally it is represented as a 0.

Implementations§

§

impl Rid

pub const fn new(id: u64) -> Rid

Create a new RID.

pub const fn to_u64(self) -> u64

Convert this RID into a u64. Returns 0 if it is invalid.

Godot equivalent: Rid.get_id()

pub const fn to_valid_u64(self) -> Option<u64>

Convert this RID into a u64 if it is valid. Otherwise, return None.

pub const fn is_valid(&self) -> bool

Returns true if this is a valid RID.

pub const fn is_invalid(&self) -> bool

Returns true if this is an invalid RID.

Trait Implementations§

§

impl ArrayElement for Rid

§

impl Clone for Rid

§

fn clone(&self) -> Rid

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Rid

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for Rid

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats Rid to match Godot’s string representation.

§Example
use godot::prelude::*;
let id = Rid::new(1);
assert_eq!(format!("{}", id), "RID(1)");
§

impl FromGodot for Rid

§

fn try_from_godot(via: <Rid as GodotConvert>::Via) -> Result<Rid, ConvertError>

Converts the Godot representation to this type, returning Err on failure.
§

fn from_godot(via: Self::Via) -> Self

⚠️ Converts the Godot representation to this type. Read more
§

fn try_from_variant(variant: &Variant) -> Result<Self, ConvertError>

Performs the conversion from a Variant, returning Err on failure.
§

fn from_variant(variant: &Variant) -> Self

⚠️ Performs the conversion from a Variant. Read more
§

impl GodotConvert for Rid

§

type Via = Rid

The type through which Self is represented in Godot.
§

impl Hash for Rid

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl Ord for Rid

§

fn cmp(&self, other: &Rid) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
§

impl PartialEq for Rid

§

fn eq(&self, other: &Rid) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for Rid

§

fn partial_cmp(&self, other: &Rid) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl ToGodot for Rid

§

type ToVia<'v> = <Rid as GodotConvert>::Via

Target type of to_godot(), which differs from Via for pass-by-reference types.
§

fn to_godot(&self) -> <Rid as ToGodot>::ToVia<'_>

Converts this type to the Godot type by reference, usually by cloning.
§

fn to_variant(&self) -> Variant

Converts this type to a Variant.
§

impl Var for Rid

§

fn get_property(&self) -> <Rid as GodotConvert>::Via

§

fn set_property(&mut self, value: <Rid as GodotConvert>::Via)

§

fn var_hint() -> PropertyHintInfo

Specific property hints, only override if they deviate from GodotType::property_info, e.g. for enums/newtypes.
§

impl Copy for Rid

§

impl Eq for Rid

§

impl GodotType for Rid

§

impl StructuralPartialEq for Rid

Auto Trait Implementations§

§

impl Freeze for Rid

§

impl RefUnwindSafe for Rid

§

impl Send for Rid

§

impl Sync for Rid

§

impl Unpin for Rid

§

impl UnwindSafe for Rid

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
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.