Struct Table

Source
pub struct Table<'gc>(/* private fields */);

Implementations§

Source§

impl<'gc> Table<'gc>

Source

pub fn new(mc: &Mutation<'gc>) -> Table<'gc>

Source

pub fn from_parts( mc: &Mutation<'gc>, raw_table: RawTable<'gc>, metatable: Option<Table<'gc>>, ) -> Table<'gc>

Source

pub fn from_inner(inner: Gc<'gc, TableInner<'gc>>) -> Self

Source

pub fn into_inner(self) -> Gc<'gc, TableInner<'gc>>

Source

pub fn get<K: IntoValue<'gc>>(self, ctx: Context<'gc>, key: K) -> Value<'gc>

Source

pub fn set<K: IntoValue<'gc>, V: IntoValue<'gc>>( self, ctx: Context<'gc>, key: K, value: V, ) -> Result<Value<'gc>, InvalidTableKey>

Source

pub fn get_value(self, key: Value<'gc>) -> Value<'gc>

Source

pub fn set_value( self, mc: &Mutation<'gc>, key: Value<'gc>, value: Value<'gc>, ) -> Result<Value<'gc>, InvalidTableKey>

Source

pub fn length(self) -> i64

Returns a ‘border’ for this table.

A ‘border’ for a table is any i >= 0 where: (i == 0 or table[i] ~= nil) and table[i + 1] == nil

If a table has exactly one border, it is called a ‘sequence’, and this border is the table’s length.

Source

pub fn next(self, key: Value<'gc>) -> NextValue<'gc>

Returns the next value after this key in the table order.

The table order in the map portion of the table is defined by the incidental order of the internal bucket list. This order may change whenever the bucket list changes size, such as when inserting into the table, so relying on the order while inserting may result in unspecified (but not unsafe) behavior.

If given Nil, it will return the first pair in the table. If given a key that is present in the table, it will return the next pair in iteration order. If given a key that is not present in the table, the behavior is unspecified.

Source

pub fn iter(self) -> Iter<'gc>

Iterate over the key-value pairs of the table.

Internally uses the Table::next method and thus matches the behavior of Lua.

Source

pub fn metatable(self) -> Option<Table<'gc>>

Source

pub fn set_metatable( self, mc: &Mutation<'gc>, metatable: Option<Table<'gc>>, ) -> Option<Table<'gc>>

Trait Implementations§

Source§

impl<'gc> Clone for Table<'gc>

Source§

fn clone(&self) -> Table<'gc>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'gc> Collect for Table<'gc>

Source§

fn needs_trace() -> bool

As an optimization, if this type can never hold a Gc pointer and trace is unnecessary to call, you may implement this method and return false. The default implementation returns true, signaling that Collect::trace must be called.
Source§

fn trace(&self, cc: &Collection)

Must call Collect::trace on all held Gc pointers. If this type holds inner types that implement Collect, a valid implementation would simply call Collect::trace on all the held values to ensure this.
Source§

impl<'gc> Debug for Table<'gc>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'gc> From<Table<'gc>> for Value<'gc>

Source§

fn from(v: Table<'gc>) -> Value<'gc>

Converts to this type from the input type.
Source§

impl<'gc> FromValue<'gc> for Table<'gc>

Source§

fn from_value(_: Context<'gc>, value: Value<'gc>) -> Result<Self, TypeError>

Source§

impl<'gc> Hash for Table<'gc>

Source§

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

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
Source§

impl<'gc> IntoIterator for Table<'gc>

Source§

type Item = (Value<'gc>, Value<'gc>)

The type of the elements being iterated over.
Source§

type IntoIter = Iter<'gc>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a, 'gc> IntoValue<'gc> for &'a Table<'gc>

Source§

fn into_value(self, ctx: Context<'gc>) -> Value<'gc>

Source§

impl<'gc> IntoValue<'gc> for Table<'gc>

Source§

fn into_value(self, _: Context<'gc>) -> Value<'gc>

Source§

impl<'gc> PartialEq for Table<'gc>

Source§

fn eq(&self, other: &Table<'gc>) -> 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.
Source§

impl<'gc> Stashable<'gc> for Table<'gc>

Source§

type Stashed = StashedTable

Source§

fn stash(self, roots: &DynamicRootSet<'gc>, mc: &Mutation<'gc>) -> Self::Stashed

Source§

impl<'gc> Copy for Table<'gc>

Source§

impl<'gc> Eq for Table<'gc>

Auto Trait Implementations§

§

impl<'gc> Freeze for Table<'gc>

§

impl<'gc> !RefUnwindSafe for Table<'gc>

§

impl<'gc> !Send for Table<'gc>

§

impl<'gc> !Sync for Table<'gc>

§

impl<'gc> Unpin for Table<'gc>

§

impl<'gc> !UnwindSafe for Table<'gc>

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, dest: *mut u8)

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'gc, T> FromMultiValue<'gc> for T
where T: FromValue<'gc>,

Source§

fn from_multi_value( ctx: Context<'gc>, values: impl Iterator<Item = Value<'gc>>, ) -> Result<T, TypeError>

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<'gc, T> IntoMultiValue<'gc> for T
where T: IntoValue<'gc>,

Source§

type Iter = Once<Value<'gc>>

Source§

fn into_multi_value(self, ctx: Context<'gc>) -> <T as IntoMultiValue<'gc>>::Iter

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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V