Skip to content

Commit e582e7c

Browse files
committed
Rename get_metatable to metatable for Table/AnyUserData types
1 parent 3714da5 commit e582e7c

File tree

5 files changed

+25
-13
lines changed

5 files changed

+25
-13
lines changed

src/table.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,12 @@ impl Table {
227227
// Compare using __eq metamethod if exists
228228
// First, check the self for the metamethod.
229229
// If self does not define it, then check the other table.
230-
if let Some(mt) = self.get_metatable() {
230+
if let Some(mt) = self.metatable() {
231231
if mt.contains_key("__eq")? {
232232
return mt.get::<Function>("__eq")?.call((self, other));
233233
}
234234
}
235-
if let Some(mt) = other.get_metatable() {
235+
if let Some(mt) = other.metatable() {
236236
if mt.contains_key("__eq")? {
237237
return mt.get::<Function>("__eq")?.call((self, other));
238238
}
@@ -493,7 +493,7 @@ impl Table {
493493
/// Returns a reference to the metatable of this table, or `None` if no metatable is set.
494494
///
495495
/// Unlike the `getmetatable` Lua function, this method ignores the `__metatable` field.
496-
pub fn get_metatable(&self) -> Option<Table> {
496+
pub fn metatable(&self) -> Option<Table> {
497497
let lua = self.0.lua.lock();
498498
let state = lua.state();
499499
unsafe {
@@ -509,6 +509,12 @@ impl Table {
509509
}
510510
}
511511

512+
#[doc(hidden)]
513+
#[deprecated(since = "0.10.0", note = "please use `metatable` instead")]
514+
pub fn get_metatable(&self) -> Option<Table> {
515+
self.metatable()
516+
}
517+
512518
/// Sets or removes the metatable of this table.
513519
///
514520
/// If `metatable` is `None`, the metatable is removed (if no metatable is set, this does

src/userdata.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -900,10 +900,16 @@ impl AnyUserData {
900900
///
901901
/// [`UserDataMetatable`]: crate::UserDataMetatable
902902
#[inline]
903-
pub fn get_metatable(&self) -> Result<UserDataMetatable> {
903+
pub fn metatable(&self) -> Result<UserDataMetatable> {
904904
self.get_raw_metatable().map(UserDataMetatable)
905905
}
906906

907+
#[doc(hidden)]
908+
#[deprecated(since = "0.10.0", note = "please use `metatable` instead")]
909+
pub fn get_metatable(&self) -> Result<UserDataMetatable> {
910+
self.metatable()
911+
}
912+
907913
fn get_raw_metatable(&self) -> Result<Table> {
908914
let lua = self.0.lua.lock();
909915
let state = lua.state();

tests/scope.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ fn test_scope_userdata_drop() -> Result<()> {
300300
Err(Error::UserDataDestructed) => {}
301301
Err(err) => panic!("improper borrow error for destructed userdata: {err:?}"),
302302
}
303-
match ud.get_metatable() {
303+
match ud.metatable() {
304304
Ok(_) => panic!("successful metatable retrieval of destructed userdata"),
305305
Err(Error::UserDataDestructed) => {}
306306
Err(err) => panic!("improper metatable error for destructed userdata: {err:?}"),

tests/table.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ fn test_table_clear() -> Result<()> {
181181
assert_eq!(t2.raw_len(), 0);
182182
assert!(t2.is_empty());
183183
assert_eq!(t2.raw_get::<Value>("a")?, Value::Nil);
184-
assert_ne!(t2.get_metatable(), None);
184+
assert_ne!(t2.metatable(), None);
185185

186186
Ok(())
187187
}

tests/userdata.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,10 @@ fn test_metamethods() -> Result<()> {
198198
assert!(userdata2.equals(userdata3)?);
199199

200200
let userdata1: AnyUserData = globals.get("userdata1")?;
201-
assert!(userdata1.get_metatable()?.contains(MetaMethod::Add)?);
202-
assert!(userdata1.get_metatable()?.contains(MetaMethod::Sub)?);
203-
assert!(userdata1.get_metatable()?.contains(MetaMethod::Index)?);
204-
assert!(!userdata1.get_metatable()?.contains(MetaMethod::Pow)?);
201+
assert!(userdata1.metatable()?.contains(MetaMethod::Add)?);
202+
assert!(userdata1.metatable()?.contains(MetaMethod::Sub)?);
203+
assert!(userdata1.metatable()?.contains(MetaMethod::Index)?);
204+
assert!(!userdata1.metatable()?.contains(MetaMethod::Pow)?);
205205

206206
Ok(())
207207
}
@@ -565,7 +565,7 @@ fn test_metatable() -> Result<()> {
565565
impl UserData for MyUserData {
566566
fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
567567
methods.add_function("my_type_name", |_, data: AnyUserData| {
568-
let metatable = data.get_metatable()?;
568+
let metatable = data.metatable()?;
569569
metatable.get::<String>(MetaMethod::Type)
570570
});
571571
}
@@ -583,7 +583,7 @@ fn test_metatable() -> Result<()> {
583583
lua.load(r#"assert(typeof(ud) == "MyUserData")"#).exec()?;
584584

585585
let ud: AnyUserData = globals.get("ud")?;
586-
let metatable = ud.get_metatable()?;
586+
let metatable = ud.metatable()?;
587587

588588
match metatable.get::<Value>("__gc") {
589589
Ok(_) => panic!("expected MetaMethodRestricted, got no error"),
@@ -629,7 +629,7 @@ fn test_metatable() -> Result<()> {
629629
}
630630

631631
let ud = lua.create_userdata(MyUserData3)?;
632-
let metatable = ud.get_metatable()?;
632+
let metatable = ud.metatable()?;
633633
assert_eq!(metatable.get::<String>(MetaMethod::Type)?.to_str()?, "CustomName");
634634

635635
Ok(())

0 commit comments

Comments
 (0)